RE: [PATCH v10 13/15] platform/x86: wmi: create userspace interface for drivers

From: Mario.Limonciello
Date: Fri Oct 20 2017 - 10:15:10 EST


> -----Original Message-----
> From: Greg KH [mailto:greg@xxxxxxxxx]
> Sent: Friday, October 20, 2017 8:24 AM
> To: Limonciello, Mario <Mario_Limonciello@xxxxxxxx>
> Cc: dvhart@xxxxxxxxxxxxx; Andy Shevchenko <andy.shevchenko@xxxxxxxxx>;
> LKML <linux-kernel@xxxxxxxxxxxxxxx>; platform-driver-x86@xxxxxxxxxxxxxxx; Andy
> Lutomirski <luto@xxxxxxxxxx>; quasisec@xxxxxxxxxx; pali.rohar@xxxxxxxxx;
> rjw@xxxxxxxxxxxxx; mjg59@xxxxxxxxxx; hch@xxxxxx; Alan Cox
> <gnomes@xxxxxxxxxxxxxxxxxxx>
> Subject: Re: [PATCH v10 13/15] platform/x86: wmi: create userspace interface for
> drivers
>
> On Thu, Oct 19, 2017 at 12:50:16PM -0500, Mario Limonciello wrote:
> > +#ifdef CONFIG_COMPAT
> > + .compat_ioctl = wmi_ioctl,
>
> Why do you still need a compat ioctl?

Being able to run 32 bit app on 64 bit kernel.
Removing the .compat_ioctl definition and they fail.

So do you mean specifically the #ifdef CONFIG_COMPAT?
I do see that compat_ioctl is declared without it in linux/fs.h, but I'll admit
I'm unsure what happens if the kernel is compiled without CONFIG_COMPAT
and you try to run 32 bit apps. _Should_ that work?