You're right, [1] says _IO is appropriate for ioctls which only take an integer argument. I'll send a v3 with this fix, although I might wait a bit for any other review comments before doing so. Thanks for taking a look! https://www.kernel.org/doc/html/latest/driver-api/ioctl.html On Mon, Apr 25, 2022 at 1:32 PM Dmitry V. Levin <ldv@xxxxxxxxxxxx> wrote: > > On Fri, Apr 22, 2022 at 02:29:41PM -0700, Axel Rasmussen wrote: > [...] > > --- a/include/uapi/linux/userfaultfd.h > > +++ b/include/uapi/linux/userfaultfd.h > > @@ -12,6 +12,10 @@ > > > > #include <linux/types.h> > > > > +/* ioctls for /dev/userfaultfd */ > > +#define USERFAULTFD_IOC 0xAA > > +#define USERFAULTFD_IOC_NEW _IOWR(USERFAULTFD_IOC, 0x00, int) > > Why this new ioctl is defined using _IOWR()? Since it neither reads from > user memory nor writes into user memory, it should rather be defined using > _IO(), shouldn't it? > > > -- > ldv