On Tue, Sep 11, 2018 at 5:36 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > On Sun, Sep 9, 2018 at 6:38 AM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > > > On Sat, Sep 08, 2018 at 04:28:17PM +0200, Arnd Bergmann wrote: > > > MTIOCPOS and MTIOCGET are incompatible between 32-bit and 64-bit user > > > space, and traditionally have been translated in fs/compat_ioctl.c. > > > > > > To get rid of that translation handler, move a corresponding > > > implementation into each of the four drivers implementing those commands. > > > > > > The interesting part of that is now in a new linux/mtio.h header that > > > wraps the existing uapi/linux/mtio.h header and provides an abstraction > > > to let drivers handle both cases easily. > > > > Ugh... Frankly, this bool compat passed all way down looks wrong. > > I can live with that; the question is whether block folks will be > > OK with that thing... > > I have tried to come up with an alternative, but couldn't really find anything > that is less ugly. Since nobody else complained, I'll resend this version > along with the other patches. Actually, there was one idea that Deepa mentioned for another subsystem with a similar issue: instead of passing down the fact that we come from a compat syscall through multiple function calls, the lowest ones (put_user_mtpos, put_user_mtget) could call in_compat_syscall(). Would you prefer that? Arnd