From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from verein.lst.de ([213.95.11.211]:51992 "EHLO newverein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728835AbeGQPkt (ORCPT ); Tue, 17 Jul 2018 11:40:49 -0400 Date: Tue, 17 Jul 2018 17:10:17 +0200 From: Christoph Hellwig To: viro@zeniv.linux.org.uk Cc: linux-aio@kvack.org, linux-fsdevel@vger.kernel.org, adrian@lisas.de, smueller@chronox.de, avagin@virtuozzo.com Subject: Re: [PATCH] aio: don't expose __aio_sigset in uapi Message-ID: <20180717151017.GA22533@lst.de> References: <20180711134846.18944-1-hch@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180711134846.18944-1-hch@lst.de> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: Al, can you send this to Linus for the next 4.18-rc? On Wed, Jul 11, 2018 at 03:48:46PM +0200, Christoph Hellwig wrote: > 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: 7a074e96 ("aio: implement io_pgetevents") > Signed-off-by: Christoph Hellwig > Reported-by: Adrian Reber > --- > fs/aio.c | 5 +++++ > include/linux/syscalls.h | 1 + > include/uapi/linux/aio_abi.h | 6 ------ > 3 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/fs/aio.c b/fs/aio.c > index 210df9da1283..27454594e37a 100644 > --- a/fs/aio.c > +++ b/fs/aio.c > @@ -1896,6 +1896,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, > diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h > index a368a68cb667..5c1a0933768e 100644 > --- a/include/linux/syscalls.h > +++ b/include/linux/syscalls.h > @@ -11,6 +11,7 @@ > #ifndef _LINUX_SYSCALLS_H > #define _LINUX_SYSCALLS_H > > +struct __aio_sigset; > struct epoll_event; > struct iattr; > struct inode; > diff --git a/include/uapi/linux/aio_abi.h b/include/uapi/linux/aio_abi.h > index 3c5038b587ba..d4593a6062ef 100644 > --- a/include/uapi/linux/aio_abi.h > +++ b/include/uapi/linux/aio_abi.h > @@ -29,7 +29,6 @@ > > #include > #include > -#include > #include > > typedef __kernel_ulong_t aio_context_t; > @@ -110,10 +109,5 @@ struct iocb { > #undef IFBIG > #undef IFLITTLE > > -struct __aio_sigset { > - const sigset_t __user *sigmask; > - size_t sigsetsize; > -}; > - > #endif /* __LINUX__AIO_ABI_H */ > > -- > 2.18.0 > > -- > To unsubscribe, send a message with 'unsubscribe linux-aio' in > the body to majordomo@kvack.org. For more info on Linux AIO, > see: http://www.kvack.org/aio/ > Don't email: aart@kvack.org ---end quoted text---