Skip to content

Commit

Permalink
aio: don't expose __aio_sigset in uapi
Browse files Browse the repository at this point in the history
glibc uses a different defintion of sigset_t than the kernel does,
and the current version would pull in both.  To fix this just do not
expose the type at all - this somewhat mirrors pselect() where we
do not even have a type for the magic sigmask argument, but just
use pointer arithmetics.

Fixes: 7a074e9 ("aio: implement io_pgetevents")
Signed-off-by: Christoph Hellwig <[email protected]>
Reported-by: Adrian Reber <[email protected]>
Signed-off-by: Al Viro <[email protected]>
  • Loading branch information
Christoph Hellwig authored and Al Viro committed Jul 18, 2018
1 parent c7e9075 commit 9ba546c
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
5 changes: 5 additions & 0 deletions fs/aio.c
Original file line number Diff line number Diff line change
Expand Up @@ -2042,6 +2042,11 @@ SYSCALL_DEFINE5(io_getevents, aio_context_t, ctx_id,
return ret;
}

struct __aio_sigset {
const sigset_t __user *sigmask;
size_t sigsetsize;
};

SYSCALL_DEFINE6(io_pgetevents,
aio_context_t, ctx_id,
long, min_nr,
Expand Down
1 change: 1 addition & 0 deletions include/linux/syscalls.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#ifndef _LINUX_SYSCALLS_H
#define _LINUX_SYSCALLS_H

struct __aio_sigset;
struct epoll_event;
struct iattr;
struct inode;
Expand Down
6 changes: 0 additions & 6 deletions include/uapi/linux/aio_abi.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@

#include <linux/types.h>
#include <linux/fs.h>
#include <linux/signal.h>
#include <asm/byteorder.h>

typedef __kernel_ulong_t aio_context_t;
Expand Down Expand Up @@ -108,10 +107,5 @@ struct iocb {
#undef IFBIG
#undef IFLITTLE

struct __aio_sigset {
const sigset_t __user *sigmask;
size_t sigsetsize;
};

#endif /* __LINUX__AIO_ABI_H */

0 comments on commit 9ba546c

Please sign in to comment.