linux_dsm_epyc7002/drivers/media/v4l2-core
Hans Verkuil 256f3162c1 [media] vb2: fix buf_init/buf_cleanup call sequences
Ensure that these ops are properly balanced.

There are two scenarios:

1) for MMAP buf_init is called when the buffers are created and buf_cleanup
   must be called when the queue is finally freed. This scenario was always
   working.

2) for USERPTR and DMABUF it is more complicated. When a buffer is queued
   the code checks if all planes of this buffer have been acquired before.
   If that's the case, then only buf_prepare has to be called. Otherwise
   buf_cleanup needs to be called if the buffer was acquired before, then,
   once all changed planes have been (re)acquired, buf_init has to be
   called followed by buf_prepare. Should buf_prepare fail, then buf_cleanup
   must be called on the newly acquired planes to release them in.

Finally, in __vb2_queue_free we have to check if the buffer was actually
acquired before calling buf_cleanup. While that it always true for MMAP
mode, it is not necessarily true for the other modes. E.g. if you just
call REQBUFS and close the file handle, then buffers were never queued and
so no buf_init was ever called.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
2014-03-11 06:56:40 -03:00
..
Kconfig [media] omap24xx/tcm825x: move to staging for future removal 2013-12-20 13:45:22 -02:00
Makefile [media] omap24xx/tcm825x: move to staging for future removal 2013-12-20 13:45:22 -02:00
tuner-core.c Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2013-11-18 15:50:07 -08:00
v4l2-async.c [media] v4l2-async: Don't use dynamic static allocation 2013-11-08 09:45:43 -02:00
v4l2-clk.c [media] V4L2: add v4l2-clock helpers to register and unregister a fixed-rate clock 2013-10-31 04:31:30 -02:00
v4l2-common.c media: core: Don't use i2c_client->driver 2013-10-03 22:28:23 +02:00
v4l2-compat-ioctl32.c [media] v4l2-subdev: Allow 32-bit compat ioctls 2014-02-24 10:57:14 -03:00
v4l2-ctrls.c [media] v4l: add RF tuner gain controls 2014-03-05 15:46:56 -03:00
v4l2-dev.c [media] v4l: do not allow modulator ioctls for non-radio devices 2014-03-05 14:16:00 -03:00
v4l2-device.c [media] v4l2-device: check if already unregistered 2013-06-21 11:00:51 -03:00
v4l2-dv-timings.c Linux 3.14-rc5 2014-03-11 06:55:49 -03:00
v4l2-event.c [media] V4L: Add v4l2_event_subdev_unsubscribe() helper function 2013-02-05 15:04:55 -02:00
v4l2-fh.c [media] v4l, smiapp, smiapp-pll, adp1653: Update contact information 2012-11-21 13:34:50 -02:00
v4l2-ioctl.c [media] v4l: enable some IOCTLs for SDR receiver 2014-03-05 14:15:20 -03:00
v4l2-mem2mem.c [media] V4L: Add mem2mem ioctl and file operation helpers 2013-12-04 15:34:24 -02:00
v4l2-of.c [media] v4l: of: Drop endpoint node reference in v4l2_of_get_remote_port() 2013-12-18 06:26:20 -02:00
v4l2-subdev.c [media] v4l2-subdev: Allow 32-bit compat ioctls 2014-02-24 10:57:14 -03:00
videobuf2-core.c [media] vb2: fix buf_init/buf_cleanup call sequences 2014-03-11 06:56:40 -03:00
videobuf2-dma-contig.c [media] videobuf2: Add support for file access mode flags for DMABUF exporting 2013-12-09 14:50:50 -02:00
videobuf2-dma-sg.c Merge branch 'upstream-fixes' into patchwork 2013-12-13 05:04:00 -02:00
videobuf2-memops.c [media] v4l: vb2-dma-contig: let mmap method to use dma_mmap_coherent call 2012-11-25 17:20:25 -02:00
videobuf2-vmalloc.c [media] videobuf2: add gfp_flags 2013-03-21 13:17:51 -03:00
videobuf-core.c [media] v4l: Tell user space we're using monotonic timestamps 2012-12-21 11:20:51 -02:00
videobuf-dma-contig.c [media] Revert "[media] videobuf_vm_{open,close} race fixes" 2014-02-04 06:29:46 -02:00
videobuf-dma-sg.c [media] Revert "[media] videobuf_vm_{open,close} race fixes" 2014-02-04 06:29:46 -02:00
videobuf-dvb.c
videobuf-vmalloc.c [media] Revert "[media] videobuf_vm_{open,close} race fixes" 2014-02-04 06:29:46 -02:00