Messages in this thread | | | From | David Laight <> | Subject | RE: [PATCH 0/5] add initial io_uring_cmd support for sockets | Date | Thu, 13 Apr 2023 14:57:15 +0000 |
| |
From: Willem de Bruijn > Sent: 13 April 2023 15:25 ... > > For instance the raw_ioctl()/rawv6_ioctl() case. The "arg" argument is > > used in different ways (one for input and one for output): > > > > 1) If cmd == SIOCOUTQ or SIOCINQ, then the return value will be > > returned to userspace: > > put_user(amount, (int __user *)arg)
There is always the option of defining alternate ioctl 'cmd' codes that user IOR() and IOW() and requiring that io_uring applications use the alternate forms.
Then have two 'ioctl' functions with a new one for IOR() type commands and the existing one for compatibility that might just do a translation (or return a translated command to avoid extra stack use).
You may still want to pass through both the kernel and user (if a user request) buffer addresses to allow for those broken requests where the buffer direction bits are wrong.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| |