forked from Minki/linux
[media] videobuf2-core: call __setup_offsets only for mmap memory type
__setup_offsets fills the v4l2_planes' mem_offset fields, which is only valid for V4L2_MEMORY_MMAP type buffers. For V4L2_MEMORY_DMABUF and _USERPTR buffers, this incorrectly overwrites the fd and userptr fields. Reported-by: Michael Olbrich <m.olbrich@pengutronix.de> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Acked-by: Marek Szyprowski <m.szyprowski@samsung.com> Acked-by: Pawel Osciak <pawel@osciak.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
8ca5d2d8e5
commit
dc77523c5d
@ -241,7 +241,8 @@ static int __vb2_queue_alloc(struct vb2_queue *q, enum v4l2_memory memory,
|
||||
q->bufs[q->num_buffers + buffer] = vb;
|
||||
}
|
||||
|
||||
__setup_offsets(q, buffer);
|
||||
if (memory == V4L2_MEMORY_MMAP)
|
||||
__setup_offsets(q, buffer);
|
||||
|
||||
dprintk(1, "Allocated %d buffers, %d plane(s) each\n",
|
||||
buffer, num_planes);
|
||||
|
Loading…
Reference in New Issue
Block a user