Re: [Y2038] [PATCH v2 2/2] ppdev: add support for compat ioctl

From: Arnd Bergmann
Date: Sat Jan 02 2016 - 17:41:56 EST


On Saturday 02 January 2016 11:59:29 Sudip Mukherjee wrote:
> >
> > Just to be sure we are talking about the same thing: you mean running a 64-bit
> > kernel in a kvm guest with a 32-bit file system, right? Running a 32-bit
> > kvm guest on a 64-bit host would not be interesting of course.
>
> The kvm (actually qemu, started from virt-manager with -enable-kvm) that
> I just configured shows the following:
>
> lscpu shows:
>
> Architecture: i686
> CPU op-mode(s): 32-bit, 64-bit
> Byte Order: Little Endian
> CPU(s): 1
> On-line CPU(s) list: 0
> Thread(s) per core: 1
> Core(s) per socket: 1
> Socket(s): 1
> Vendor ID: GenuineIntel
> CPU family: 6
> Model: 6
> Stepping: 3
> CPU MHz: 2993.200
> BogoMIPS: 5986.40
> Virtualization: VT-x
> Hypervisor vendor: KVM
> Virtualization type: full
> L1d cache: 32K
> L1i cache: 32K
> L2 cache: 4096K
>
> uname -i shows:
> i686
>
>
> Will it be ok to test in this one?


If 'uname -i' reports i686, that usually means you have configured the
kernel for 32-bit. Try rebuilding the kernel with 'CONFIG_64BIT' and
'CONFIG_IA32_EMULATION' enabled to test that the 32-bit user space now
also works under a 64-bit kernel.

That reminds me, we should now remove the code from fs/compat_ioctl.c
that was handling emulating the other ioctl commands, the new .compat_ioctl
callback in ppdev takes care of that along with the PPGETTIME/PPSETTIME
calls, see below

Arnd


diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index dcf26537c935..e65e7d932566 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -1019,28 +1019,6 @@ COMPATIBLE_IOCTL(PPPIOCGL2TPSTATS)
/* PPPOX */
COMPATIBLE_IOCTL(PPPOEIOCSFWD)
COMPATIBLE_IOCTL(PPPOEIOCDFWD)
-/* ppdev */
-COMPATIBLE_IOCTL(PPSETMODE)
-COMPATIBLE_IOCTL(PPRSTATUS)
-COMPATIBLE_IOCTL(PPRCONTROL)
-COMPATIBLE_IOCTL(PPWCONTROL)
-COMPATIBLE_IOCTL(PPFCONTROL)
-COMPATIBLE_IOCTL(PPRDATA)
-COMPATIBLE_IOCTL(PPWDATA)
-COMPATIBLE_IOCTL(PPCLAIM)
-COMPATIBLE_IOCTL(PPRELEASE)
-COMPATIBLE_IOCTL(PPYIELD)
-COMPATIBLE_IOCTL(PPEXCL)
-COMPATIBLE_IOCTL(PPDATADIR)
-COMPATIBLE_IOCTL(PPNEGOT)
-COMPATIBLE_IOCTL(PPWCTLONIRQ)
-COMPATIBLE_IOCTL(PPCLRIRQ)
-COMPATIBLE_IOCTL(PPSETPHASE)
-COMPATIBLE_IOCTL(PPGETMODES)
-COMPATIBLE_IOCTL(PPGETMODE)
-COMPATIBLE_IOCTL(PPGETPHASE)
-COMPATIBLE_IOCTL(PPGETFLAGS)
-COMPATIBLE_IOCTL(PPSETFLAGS)
/* Big A */
/* sparc only */
/* Big Q for sound/OSS */

--
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/