• Hans Verkuil's avatar
    [media] videobuf2-core: fix plane_sizes handling in VIDIOC_CREATE_BUFS · 58e1ba3c
    Hans Verkuil authored
    The handling of q->plane_sizes was wrong in vb2_core_create_bufs().
    The q->plane_sizes array was global and it was overwritten by create_bufs.
    So if reqbufs was called with e.g. size 100000 then q->plane_sizes[0] would
    be set to 100000. If create_bufs was called afterwards with size 200000,
    then q->plane_sizes[0] would be overwritten with the new value. Calling
    create_bufs again for size 100000 would cause an error since 100000 is now
    less than q->plane_sizes[0].
    
    This patch fixes this problem by 1) removing q->plane_sizes and using the
    vb->planes[].length field instead, and 2) by introducing a min_length field
    in struct vb2_plane. This field is set to the plane size as returned by
    the queue_setup op and is the minimum required plane size. So user pointers
    or dmabufs should all be at least this size.
    Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
    Reported-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
    58e1ba3c
Name
Last commit
Last update
Documentation Loading commit data...
arch Loading commit data...
block Loading commit data...
certs Loading commit data...
crypto Loading commit data...
drivers Loading commit data...
firmware Loading commit data...
fs Loading commit data...
include Loading commit data...
init Loading commit data...
ipc Loading commit data...
kernel Loading commit data...
lib Loading commit data...
mm Loading commit data...
net Loading commit data...
samples Loading commit data...
scripts Loading commit data...
security Loading commit data...
sound Loading commit data...
tools Loading commit data...
usr Loading commit data...
virt Loading commit data...
.get_maintainer.ignore Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...
REPORTING-BUGS Loading commit data...