Re: ioctl cleanups: enable sg_io and serial stuff to be shared

Ben Collins
2003-05-08T15:34:37Z

On Wed, May 07, 2003 at 07:39:00AM -0700, David S. Miller wrote:
> On Wed, 2003-05-07 at 05:56, Christoph Hellwig wrote:
> > Btw, if you really want to move all the 32bit ioctl compat code to the
> > drivers a ->ioctl32 file operation might be the better choice..
>
> I can't believe I never thought of that. :-)

How would the driver differentiate between .compat_ioctl == NULL being a
case where it should fail because there is no translation, or a case
where it should use the compatible .ioctl? Maybe there should be an
extra flag like use_compat_ioctl. So:

.use_compat_ioctl = 1;
.ioctl = my_ioctl;
.compat_ioctl = my_compat_ioctl;

Means use my_compat_ioctl() for translation. And just:

.use_compat_ioctl = 1;
.ioctl = my_ioctl;

Means that our standard my_ioctl is 32/64 compatible.

This would also solve the current problem where a module that is
compiled with compat ioctl's using register_ioctl32_conversion() is not
usable on a kernel compiled without CONFIG_COMPAT, even though it very
well should be.

--
Debian - http://www.debian.org/
Linux 1394 - http://www.linux1394.org/
Subversion - http://subversion.tigris.org/
Deqo - http://www.deqo.com/