linux-stable/drivers/media/v4l2-core
Arnd Bergmann 678d92b612 media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86
My previous bugfix addressed an API inconsistency found by syzbot,
and it correctly fixed the issue on x86-64 machines, which now behave
correctly for both native and compat tasks.

Unfortunately, John found that the patch broke compat mode on all other
architectures, as they can no longer rely on the VIDIOC_DQEVENT_TIME32
code from the native handler as a fallback in the compat code.

The best way I can see for addressing this is to generalize the
VIDIOC_DQEVENT32_TIME32 code from x86 and use that for all architectures,
leaving only the VIDIOC_DQEVENT32 variant as x86 specific. The original
code was trying to be clever and use the same conversion helper for native
32-bit code and compat mode, but that turned out to be too obscure so
even I missed that bit I had introduced myself when I made the fix.

Fixes: c344f07aa1 ("media: v4l2-core: ignore native time32 ioctls on 64-bit")
Reported-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
2021-11-10 11:38:26 +00:00
..
Kconfig media: v4l: async, fwnode: Improve module organisation 2021-06-02 11:46:27 +02:00
Makefile media: v4l: async, fwnode: Improve module organisation 2021-06-02 11:46:27 +02:00
tuner-core.c
v4l2-async.c media: v4l: async: Rename async nf functions, clean up long lines 2021-09-30 10:07:35 +02:00
v4l2-common.c media: Add NV12_4L4 tiled format 2021-09-30 10:07:40 +02:00
v4l2-compat-ioctl32.c media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86 2021-11-10 11:38:26 +00:00
v4l2-ctrls-api.c media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-ctrls-core.c media: hevc: Add scaling matrix control 2021-09-30 10:07:38 +02:00
v4l2-ctrls-defs.c media: v4l2-ctrls: Add V4L2_CID_NOTIFY_GAINS control 2021-09-30 10:07:46 +02:00
v4l2-ctrls-priv.h media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-ctrls-request.c media: v4l2-ctrls: split up into four source files 2021-05-25 17:03:29 +02:00
v4l2-dev.c media: v4l2-dev.c: Modified the macro SET_VALID_IOCTL 2021-06-02 14:18:01 +02:00
v4l2-device.c media: v4l: subdev: Set sd->devnode before registering the subdev 2020-12-02 15:55:44 +01:00
v4l2-dv-timings.c media: v4l2-dv-timings.c: fix wrong condition in two for-loops 2021-08-04 14:43:52 +02:00
v4l2-event.c media: v4l2-event: Modified variable type 'unsigned' to 'unsigned int' 2021-06-17 10:22:59 +02:00
v4l2-fh.c media: v4l2-core: Avoid the dangling pointer in v4l2_fh_release 2021-06-02 13:17:44 +02:00
v4l2-flash-led-class.c media: v4l2-flash: Check whether setting LED brightness succeeded 2021-08-04 14:43:51 +02:00
v4l2-fwnode.c media: v4l2-fwnode: Simplify v4l2_async_nf_parse_fwnode_endpoints() 2021-09-30 10:07:35 +02:00
v4l2-h264.c
v4l2-i2c.c
v4l2-ioctl.c media: videobuf2: handle V4L2_MEMORY_FLAG_NON_COHERENT flag 2021-09-30 10:07:57 +02:00
v4l2-jpeg.c media: Avoid parsing quantization and huffman tables 2021-03-22 10:40:13 +01:00
v4l2-mc.c media: v4l2-mc: fix a warning message 2021-03-22 13:06:39 +01:00
v4l2-mem2mem.c media: v4l2-mem2mem: always call poll_wait() on queues 2021-01-04 13:13:15 +01:00
v4l2-spi.c
v4l2-subdev.c media: subdev: remove VIDIOC_DQEVENT_TIME32 handling 2021-06-17 10:16:34 +02:00
v4l2-trace.c
videobuf-core.c
videobuf-dma-contig.c
videobuf-dma-sg.c media: videobuf-dma-sg: void function return statements are not generally useful 2021-06-02 14:18:36 +02:00
videobuf-vmalloc.c