Re: [PATCH v2 01/17] compat_ioctl: add generic_compat_ioctl_ptrarg()

From: Al Viro
Date: Sun Oct 28 2018 - 13:07:08 EST


On Thu, Sep 13, 2018 at 12:29:02PM +0200, Arnd Bergmann wrote:

> I was hoping that the _ptrarg suffix gives enough warning here,
> but maybe not. I was careful to only use it in cases that I
> checked are safe, either using only pointer arguments, or
> no arguments.
>
> What we might do for further clarification (besides adding a
> comment next to the declaration), would be to add a
> complementary generic_compat_ioctl_intarg() that skips
> the compat_ptr(). There are only a handful of drivers that
> would use this though.

... and the next Monday zeniv went down until the end of September,
so I'd missed any resends that might've happened in that window.

It's _probably_ too late for this cycle, but let's deal with that
thing properly for the next one. A couple of comments from rereading
the thread:
* generic_compat_ioctl_fthagn^H^H^H^H^H^Hptrarg should not
be EXPORT_SYMBOL_GPL(). I'm sorry, but this is beyond ridiculous -
"call native ioctl, with the last argument interpreted as an address
from 32bit process POV and converted to 64bit equivalent" should
not be copyrightable at all, and there's really only one natural
way to express that. Use EXPORT_SYMBOL(). And I'd consider names
like compat_ptr_ioctl() - easier to type and less opaque...
* rtc patch makes RTC_IRQP_SET32 et.al. accepted by 64bit
syscall. Which is a behaviour change that might or might not be
OK, but it needs to be clearly stated.

Could you resend the series, with ACKs attached, etc., either
based on -next (if done now) or on -rc1 (once released)?