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); 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.