linux_dsm_epyc7002/drivers/media
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
..
common [media, edac] Change my email address 2014-02-07 08:03:07 -02:00
dvb-core [media] dvb_frontend: better handle lna set errors 2014-03-04 14:19:34 -03:00
dvb-frontends Linux 3.14-rc5 2014-03-11 06:55:49 -03:00
firewire firewire: introduce fw_driver.probe and .remove methods 2013-06-09 18:15:00 +02:00
i2c Linux 3.14-rc5 2014-03-11 06:55:49 -03:00
mmc [media] siano: get rid of CammelCase from smscoreapi.h 2013-03-21 10:03:16 -03:00
parport [media] vb2: call buf_finish from __queue_cancel 2014-03-11 06:56:39 -03:00
pci [media] vb2: call buf_finish from __queue_cancel 2014-03-11 06:56:39 -03:00
platform [media] vb2: change result code of buf_finish to void 2014-03-11 06:56:38 -03:00
radio [media] radio-cadet: avoid interruptible_sleep_on race 2014-02-28 14:30:30 -03:00
rc [media, edac] Change my email address 2014-02-07 08:03:07 -02:00
tuners [media] xc2028: silence compiler warnings 2014-03-05 15:35:25 -03:00
usb [media] vb2: call buf_finish from __queue_cancel 2014-03-11 06:56:39 -03:00
v4l2-core [media] vb2: fix buf_init/buf_cleanup call sequences 2014-03-11 06:56:40 -03:00
Kconfig [media] subdev autoselect only works if I2C and I2C_MUX is selected 2013-12-21 06:03:06 -02:00
Makefile
media-device.c [media] media: info leak in __media_device_enum_links() 2013-06-12 18:52:45 -03:00
media-devnode.c [media] media: Add 64--32 bit compat ioctl handler 2013-03-18 20:44:36 -03:00
media-entity.c [media] media: Check for active links on pads with MEDIA_PAD_FL_MUST_CONNECT flag 2013-12-04 15:03:45 -02:00