OSDN Git Service

media: videobuf2: Fix length check for single plane dmabuf queueing
authorJohn Cox <jc@kynesim.co.uk>
Wed, 17 Jun 2020 13:21:52 +0000 (15:21 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Sat, 4 Jul 2020 10:41:57 +0000 (12:41 +0200)
Check against length in v4l2_buffer rather than vb2_buffer when the
buffer is a dmabuf. This makes the single plane test the same as the
existing multiplanar test.

Signed-off-by: John Cox <jc@kynesim.co.uk>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/common/videobuf2/videobuf2-v4l2.c

index 98477a8..57aa183 100644 (file)
@@ -117,7 +117,8 @@ static int __verify_length(struct vb2_buffer *vb, const struct v4l2_buffer *b)
                                return -EINVAL;
                }
        } else {
-               length = (b->memory == VB2_MEMORY_USERPTR)
+               length = (b->memory == VB2_MEMORY_USERPTR ||
+                         b->memory == VB2_MEMORY_DMABUF)
                        ? b->length : vb->planes[0].length;
 
                if (b->bytesused > length)