On Mon, Aug 08, 2022 at 03:41:30PM +0300, Ovidiu Panait wrote: > From: Chen-Yu Tsai <wenst@xxxxxxxxxxxx> > > commit 8310ca94075e784bbb06593cd6c068ee6b6e4ca6 upstream. > > 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: 7f98639def42 ("V4L/DVB: add memory-to-memory device helper framework for videobuf") > Fixes: 908a0d7c588e ("[media] v4l: mem2mem: port to videobuf2") > Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx> > Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx> > Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> > [OP: backport to 5.4: adjusted return logic in v4l2_m2m_qbuf() to match the > logic in the original commit: call v4l2_m2m_adjust_mem_offset() only if !ret > and before the v4l2_m2m_try_schedule() call] > Signed-off-by: Ovidiu Panait <ovidiu.panait@xxxxxxxxxxxxx> > --- > drivers/media/v4l2-core/v4l2-mem2mem.c | 60 ++++++++++++++++++++------ > 1 file changed, 46 insertions(+), 14 deletions(-) Now queued up, thanks. greg k-h