On Mon, Dec 12, 2016 at 10:39:43AM +0000, Dr. David Alan Gilbert wrote:
> * jingpiao chen (chenjingp...@gmail.com) wrote:
> > Version:4.14-ab28d7f1e5ab9b51f5708741bd13f92e768123d4
> > 
> > 2.userfaultfd.c:126
> > 
> > 126         case UFFDIO_UNREGISTER:
> > 127         case UFFDIO_WAKE: {
> > 128                 struct uffdio_range ura;
> > 129                 tprints(", ");
> > 130                 if (!umove_or_printaddr(tcp, arg, &ura))
> > 131                         tprintf_uffdio_range(&ura);
> > 132                 return RVAL_DECODED | 1;
> > 133         }
> > 
> > /usr/include/linux/userfaultfd.h:
> > 51 #define UFFDIO_UNREGISTER       _IOR(UFFDIO, _UFFDIO_UNREGISTER,        \
> > 52                                      struct uffdio_range)
> > 53 #define UFFDIO_WAKE             _IOR(UFFDIO, _UFFDIO_WAKE,      \
> > 54                                      struct uffdio_range)
> > 
> > UFFDIO_UNREGISTER and UFFDIO_WAKE are read data, why it get data
> > when entering.
> > I means it should replace by:
> 
> >From memory, the problem is that the kernel macros are wrong (and
> can't be fixed since they'd break ABI).  
> In both those calls it's userland who passes data to the kernel
> (giving the address range to be unregisters/woken).

Exactly, this has been discussed here already, citing myself from
https://sourceforge.net/p/strace/mailman/message/35072888/

whoever marked these two ioctls with _IOR has clearly missed the point:
an ioctl that passes data from userspace to the kernel is a write ioctl
and should be marked with _IOW.  Now it's too late to change the ABI and
we'll have to live with two write-only _IOR ioctls.


-- 
ldv

Attachment: pgp6fp2f_A7L9.pgp
Description: PGP signature

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/xeonphi
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to