]> git.baikalelectronics.ru Git - kernel.git/commit
media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
authorChen-Yu Tsai <wenst@chromium.org>
Thu, 9 Dec 2021 16:38:03 +0000 (17:38 +0100)
committerMauro Carvalho Chehab <mchehab@kernel.org>
Sun, 23 Jan 2022 20:18:42 +0000 (21:18 +0100)
commitf585a2466accf116fb9103206e4b0725bcaafa9a
tree20496a1f882f6b16ba225c502ef6336c99bfc9cb
parent2b314c1e0d9af88263f3e5a90083b5e4f2d12368
media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls

DST_QUEUE_OFF_BASE is applied to offset/mem_offset on MMAP capture buffers
only for the VIDIOC_QUERYBUF ioctl, while the userspace fields (including
offset/mem_offset) are filled in for VIDIOC_{QUERY,PREPARE,Q,DQ}BUF
ioctls. This leads to differences in the values presented to userspace.
If userspace attempts to mmap the capture buffer directly using values
from DQBUF, it will fail.

Move the code that applies the magic offset into a helper, and call
that helper from all four ioctl entry points.

[hverkuil: drop unnecessary '= 0' in v4l2_m2m_querybuf() for ret]

Fixes: 1ede4d08c8c3 ("V4L/DVB: add memory-to-memory device helper framework for videobuf")
Fixes: 35ca39141453 ("[media] v4l: mem2mem: port to videobuf2")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
drivers/media/v4l2-core/v4l2-mem2mem.c