Re: [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat

From: Greg KH
Date: Thu Jan 06 2005 - 14:39:20 EST


On Thu, Jan 06, 2005 at 06:53:42PM +0100, Andi Kleen wrote:
> [cc list trimmed]
>
> On Thu, Jan 06, 2005 at 06:26:13PM +0100, Petr Vandrovec wrote:
> > > Why are you issuing 64bit ioctls from 32bit applications?
> >
> > There are three reasons (main reason is that vmware is 32bit app, but it is how
> > things are currently laid out; even if there will be 64bit app, 32bit versions are
> > already in use and people wants to use them on 64bit kernels):
> >
> > * USB. usbfs API is written in a way which does not allow you to safely wrap
> > it in "generic" 32->64 layer, and attempts to do it in non-generic way in usbfs
> > code itself did not look feasible year ago. Even on current 64bit kernels it is not
> > possible to issue raw USB operations from 32bit apps, and I do not believe that
> > it is going to change - after all, just issuing ioctl through 64bit path from application
> > which is aware of 64bit kernel is quite simple, much simpler than any attempt to
> > make kernel dual-interface.
>
> Agree that's a problem. We just need an alternative interface here
> or I try to come up with an x86-64 specific hack (I think it's possible
> to do the compatibility x86-64 specific, just not in compat code for
> all architectures who have truly separated user/kernel address spaces)
>
> I hope the USB people will eventually add a better interface here.
> Greg?

Yes, we've been talking about a usbfs2 for a long time now, but no one
has stepped up and done the work. It would look a lot like gadgetfs,
which only has a limited number of ioctls needed for its operation.

But I don't see where the problem is unique to usbfs here, don't we
properly use the 32->64bit ioctl conversion code to solve this kind of
issue? Are we using it incorrectly?

thanks,

greg k-h
-
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/