Re: v4l & compat_ioctl

Mauro Carvalho Chehab
2008-03-28T17:25:01Z

On Fri, 28 Mar 2008 14:35:37 +0100
Andi Kleen <andi@firstfloor.org> wrote:

> On Fri, Mar 28, 2008 at 01:22:48PM +0100, Jiri Slaby wrote:
> > On 03/28/2008 12:38 PM, Andi Kleen wrote:
> > >BTW i haven't audited them, but if there is u64 or similar in there
> > >anywhere
> > >be careful about alignment.
> >
> > Well, not good, some ioctls have different numbers on 32 and 64 bit:
>
> Then you need compat handlers to translate the numbers.

V4L has its 32 bits compat module already, defined on
drivers/media/video/compat_ioctl32.c.

Also, the drivers should have this:

.compat_ioctl = v4l_compat_ioctl32,

on their fops tables:

$ ls -C `grep -l compat_ioctl32 *.c|grep -v mod`

arv.c meye.c radio-rtrack2.c stk-webcam.c
bttv-driver.c miropcm20-radio.c radio-sf16fmi.c stradis.c
bw-qcam.c ov511.c radio-sf16fmr2.c stv680.c
compat_ioctl32.c pms.c radio-si470x.c usbvideo.c
cpia2_v4l.c pwc-if.c radio-terratec.c usbvision-video.c
cpia.c radio-aimslab.c radio-trust.c vicam.c
c-qcam.c radio-aztech.c radio-typhoon.c w9966.c
cx23885-video.c radio-cadet.c radio-zoltrix.c w9968cf.c
cx88-video.c radio-gemtek.c saa5249.c zc0301_core.c
dsbr100.c radio-gemtek-pci.c saa7134-video.c zoran_driver.c
em28xx-video.c radio-maestro.c se401.c
et61x251_core.c radio-maxiradio.c sn9c102_core.c

It seems that the problem you're suffering is specific to some driver.

Cheers,
Mauro