Re: unregister_ioctl32_conversion and modules. ioctl32 revisited.

From: Andi Kleen
Date: Wed Dec 15 2004 - 03:02:03 EST


> There were two additional motivations for my patch:
> 1. Make it possible to avoid the BKL completely by writing
> an ioctl with proper internal locking.

Good point. It is the first step towards BKL less native ioctls. So it's
certainly a good idea even for the non compat case.

> 2. As noted by Juergen Kreileder, the compat hash does not work
> for ioctls that encode additional information in the command, like this:
>
> #define EVIOCGBIT(ev,len) _IOC(_IOC_READ, 'E', 0x20 + ev, len)
>
> I post the patch (updated for 2.6.10-rc2, boots) that I built for
> Juergen, below. If there's interest, let me know.

Patch looks good to me, except for some messed up white space
that is probably easily fixed.

> I'd like to add that my patch does not touch any in-kernel users,
> that would have to be done separately, probably as a first step
> simply taking the BKL inside ioctl_compat.

I doubt any of the compat wrappers need BKL, they never touch
any global state and then just call sys_ioctl which takes the BKL
only when needed.

Ok there is a slight possibility that out of tree code wrote
compat wrappers that need BKL, but in that case they will just
have to deal with the bugs. Removing register_ioctl32_conversion
and some comments would take care of them anyways.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/