On Mon, Nov 19, 2018 at 04:27:49PM -0800, Andy Lutomirski wrote: > On Mon, Nov 19, 2018 at 3:07 PM Tycho Andersen <tycho@xxxxxxxx> wrote: > > > These tools also care about ioctls. Adding a system call is a pain, > > > but the solution is to make adding system calls less of a pain, not to > > > permanently make the Linux ABI worse. > > > > For user-defined values of "worse" :) > > > > I tend to agree with Tycho here. But I'm wondering if it might be > worth considering a better ioctl. > > /me dons flame-proof hat > > We could do: > > long better_ioctl(int fd, u32 nr, const void *inbuf, size_t inlen, > const void *outbuf, size_t outlen); I'm the writer of this patch so take this with a grain of salt. I think it is a bad idea to stop this patch and force us to introduce a new type of ioctl(). An ioctl() is also not easy to use for this task because we want to add a siginfo_t argument which I actually think provides value and makes this interface more useful. > > and have a central table in the kernel listing all possible nr values > along with which driver they belong to. We could have a sane > signature and get rid of the nr collision problem. > > The major problem I see is that u32 isn't really enough to have a sane > way to allow out-of-tree drivers to use this, and that we can't > readily use anything bigger than u32 without indirection because we're > out of syscall argument space.