Re: [JANITOR PROPOSAL] Switch ioctl functions to ->unlocked_ioctl

Andi Kleen
2008-01-09T00:45:29Z

On Wed, Jan 09, 2008 at 01:40:58AM +0100, Arnd Bergmann wrote:
> On Tuesday 08 January 2008, Andi Kleen wrote:
> > > Thanks, Andi! I think it'd very useful change.
> >
> > Reminds me this is something that should be actually flagged
> > in checkpatch.pl too
> >
> > Andy, it would be good if checkpatch.pl complained about .ioctl =
> > as opposed to .unlocked_ioctl = ...
>
> This is rather hard, as there are different data structures that
> all contain ->ioctl and/or ->unlocked_ioctl function pointers.
> Some of them already use ->ioctl in an unlocked fashion only,
> so blindly warning about this would give lots of false positives.

I imagined it would check for

+struct file_operations ... = {
+ ...
+ .ioctl = ...

That wouldn't catch the case of someone adding only .ioctl to an
already existing file_operations which is not visible in the patch context,
but that should be hopefully rare. The more common case is adding
completely new operations

>
> > Also perhaps if a whole new file_operations with a ioctl is added
> > complain about missing compat_ioctl as a low prioritity warning?
> > (might be ok if it's architecture specific on architectures without
> > compat layer)
>
> Also, not every data structure that provides a ->ioctl callback
> also has a ->compat_ioctl, although there should be fewer exceptions

That's probably a bug in general. e.g. those likely won't work
at all on the "compat by default" architectures like sparc or ppc64.

-Andi