On Mon, Jun 12, 2023 at 02:59:20AM +0800, wenyang.linux@xxxxxxxxxxx wrote: > From: Wen Yang <wenyang.linux@xxxxxxxxxxx> > > Create a uapi header include/uapi/linux/eventfd.h, move the associated > flags to the uapi header, and include it from linux/eventfd.h. > > Signed-off-by: Wen Yang <wenyang.linux@xxxxxxxxxxx> > Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx> > Cc: Jens Axboe <axboe@xxxxxxxxx> > Cc: Christian Brauner <brauner@xxxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Cc: Dylan Yudaken <dylany@xxxxxx> > Cc: David Woodhouse <dwmw@xxxxxxxxxxxx> > Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx> > Cc: Eric Biggers <ebiggers@xxxxxxxxxx> > Cc: linux-fsdevel@xxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > --- I think the change overall makes sense but see below. > include/linux/eventfd.h | 16 +--------------- > include/uapi/linux/eventfd.h | 27 +++++++++++++++++++++++++++ > 2 files changed, 28 insertions(+), 15 deletions(-) > create mode 100644 include/uapi/linux/eventfd.h > > diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h > index 98d31cdaca40..c8be8fa6795d 100644 > --- a/include/linux/eventfd.h > +++ b/include/linux/eventfd.h > @@ -9,26 +9,12 @@ > #ifndef _LINUX_EVENTFD_H > #define _LINUX_EVENTFD_H > > -#include <linux/fcntl.h> > #include <linux/wait.h> > #include <linux/err.h> > #include <linux/percpu-defs.h> > #include <linux/percpu.h> > #include <linux/sched.h> > - > -/* > - * CAREFUL: Check include/uapi/asm-generic/fcntl.h when defining > - * new flags, since they might collide with O_* ones. We want > - * to re-use O_* flags that couldn't possibly have a meaning > - * from eventfd, in order to leave a free define-space for > - * shared O_* flags. > - */ > -#define EFD_SEMAPHORE (1 << 0) > -#define EFD_CLOEXEC O_CLOEXEC > -#define EFD_NONBLOCK O_NONBLOCK > - > -#define EFD_SHARED_FCNTL_FLAGS (O_CLOEXEC | O_NONBLOCK) > -#define EFD_FLAGS_SET (EFD_SHARED_FCNTL_FLAGS | EFD_SEMAPHORE) > +#include <uapi/linux/eventfd.h> > > struct eventfd_ctx; > struct file; > diff --git a/include/uapi/linux/eventfd.h b/include/uapi/linux/eventfd.h > new file mode 100644 > index 000000000000..02e9dcdb8d29 > --- /dev/null > +++ b/include/uapi/linux/eventfd.h > @@ -0,0 +1,27 @@ > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ > +#ifndef _UAPI_LINUX_EVENTFD_H > +#define _UAPI_LINUX_EVENTFD_H > + > +#include <linux/types.h> > + > +/* For O_CLOEXEC and O_NONBLOCK */ > +#include <linux/fcntl.h> > + > +/* For _IO helpers */ > +#include <linux/ioctl.h> Why would you want to include that? > + > +/* > + * CAREFUL: Check include/uapi/asm-generic/fcntl.h when defining > + * new flags, since they might collide with O_* ones. We want > + * to re-use O_* flags that couldn't possibly have a meaning > + * from eventfd, in order to leave a free define-space for > + * shared O_* flags. > + */ I would leave that comment together with EFD_SHARED_FCNTL_FLAGS and EFD_FLAGS_SET in the kernel only header. > +#define EFD_SEMAPHORE (1 << 0) > +#define EFD_CLOEXEC O_CLOEXEC > +#define EFD_NONBLOCK O_NONBLOCK > + > +#define EFD_SHARED_FCNTL_FLAGS (O_CLOEXEC | O_NONBLOCK) > +#define EFD_FLAGS_SET (EFD_SHARED_FCNTL_FLAGS | EFD_SEMAPHORE) I think that doesn't belong into the uapi header and should be left in the kernel header. > + > +#endif /* _UAPI_LINUX_EVENTFD_H */ > -- > 2.34.1 >