linux/drivers/media/platform
Sylwester Nawrocki f61d500820 [media] exynos4-is: Fix buffer release issue on fimc m2m video nodes
This fixes dropping ownership of buffers in the driver's stop_streaming
callback, so buffers on the memory-to-memory video nodes are properly
released, also in case when the driver has a buffer only on one of the
queues (OUTPUT, CAPTURE) before the video node close.
The issue was being reported by videobuf2 with a following warning while
checking q->owned_by_drv_count:

[ 2498.310766] WARNING: CPU: 0 PID: 9358 at drivers/media/v4l2-core/videobuf2-core.c:1818 __vb2_queue_cancel+0xe8/0x14c
[ 2498.320258] Modules linked in:
[ 2498.323212] CPU: 0 PID: 9358 Comm: v4l2_decode Not tainted 4.7.0-rc4-next-20160627 #1210
[ 2498.331284] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[ 2498.331327] [<c010d738>] (unwind_backtrace) from [<c010a4b0>] (show_stack+0x10/0x14)
[ 2498.331344] [<c010a4b0>] (show_stack) from [<c031a4ac>] (dump_stack+0x74/0x94)
[ 2498.331358] [<c031a4ac>] (dump_stack) from [<c011a52c>] (__warn+0xd4/0x100)
[ 2498.331369] [<c011a52c>] (__warn) from [<c011a578>] (warn_slowpath_null+0x20/0x28)
[ 2498.331381] [<c011a578>] (warn_slowpath_null) from [<c04ed420>] (__vb2_queue_cancel+0xe8/0x14c)
[ 2498.331395] [<c04ed420>] (__vb2_queue_cancel) from [<c04ee10c>] (vb2_core_queue_release+0x18/0x38)
[ 2498.331406] [<c04ee10c>] (vb2_core_queue_release) from [<c04eab50>] (v4l2_m2m_ctx_release+0x1c/0x28)
[ 2498.331420] [<c04eab50>] (v4l2_m2m_ctx_release) from [<c04fe184>] (fimc_m2m_release+0x24/0x78)
[ 2498.331437] [<c04fe184>] (fimc_m2m_release) from [<c04d76c8>] (v4l2_release+0x34/0x74)
[ 2498.331455] [<c04d76c8>] (v4l2_release) from [<c01dc8d4>] (__fput+0x80/0x1bc)
[ 2498.331469] [<c01dc8d4>] (__fput) from [<c0132edc>] (task_work_run+0xc0/0xe4)
[ 2498.331482] [<c0132edc>] (task_work_run) from [<c011d460>] (do_exit+0x304/0xa24)
[ 2498.331493] [<c011d460>] (do_exit) from [<c011dccc>] (do_group_exit+0x3c/0xbc)
[ 2498.331505] [<c011dccc>] (do_group_exit) from [<c0126cac>] (get_signal+0x200/0x65c)
[ 2498.331517] [<c0126cac>] (get_signal) from [<c010e928>] (do_signal+0x84/0x3c4)
[ 2498.331532] [<c010e928>] (do_signal) from [<c010a0ec>] (do_work_pending+0xa4/0xb4)
[ 2498.331545] [<c010a0ec>] (do_work_pending) from [<c0107954>] (slow_work_pending+0xc/0x20)

Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kamil Debski <k.debski@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
2016-07-08 14:26:29 -03:00
..
am437x [media] am437x-vpfe: fix an uninitialized variable bug 2016-04-13 17:09:55 -03:00
blackfin [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
coda media updates for v4.6-rc1 2016-03-16 18:27:32 -07:00
davinci [media] davinci: ccdc_update_raw_params() frees the wrong thing 2016-01-25 15:15:26 -02:00
exynos4-is [media] exynos4-is: Fix buffer release issue on fimc m2m video nodes 2016-07-08 14:26:29 -03:00
exynos-gsc media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
marvell-ccic [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
mtk-vcodec [media] vcodec: mediatek: Add Mediatek H264 Video Encoder Driver 2016-07-08 14:12:51 -03:00
mtk-vpu [media] VPU: mediatek: support Mediatek VPU 2016-07-08 14:04:48 -03:00
omap fbdev changes for 4.5 2016-01-18 11:58:31 -08:00
omap3isp [media] media: Rename is_media_entity_v4l2_io to is_media_entity_v4l2_video_device 2016-04-13 17:20:48 -03:00
rcar-vin [media] media: rcar-vin: add DV timings support 2016-06-28 09:06:40 -03:00
s3c-camif [media] media: s3c-camif: fix deadlock on driver probe() 2016-05-02 10:39:58 -03:00
s5p-g2d media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
s5p-jpeg media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
s5p-mfc [media] s5p-mfc: improve v4l2_capability driver and card fields 2016-07-08 14:26:28 -03:00
s5p-tv media: set proper max seg size for devices on Exynos SoCs 2016-06-03 11:13:11 +02:00
soc_camera [media] rcar-vin: add Renesas R-Car VIN driver 2016-06-16 07:42:32 -03:00
sti bdisp: move the V/H filter spec to bdisp-hw.c 2016-06-24 12:27:51 -03:00
ti-vpe [media] media: ti-vpe: cal: Fix warning: variable dereference before being checked 2016-02-23 07:17:27 -03:00
vivid vivid: remove some unused vars 2016-06-24 12:09:49 -03:00
vsp1 [media] v4l: vsp1: Update WPF and LIF maximum sizes for Gen3 2016-04-13 19:16:10 -03:00
xilinx [media] xilinx-vipp: remove unnecessary of_node_put 2016-05-07 11:45:38 -03:00
arv.c
fsl-viu.c [media] fsl-viu: drop format names 2015-08-11 06:59:09 -03:00
Kconfig [media] vcodec: mediatek: Add Mediatek V4L2 Video Encoder Driver 2016-07-08 14:10:51 -03:00
m2m-deinterlace.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
Makefile [media] vcodec: mediatek: Add Mediatek V4L2 Video Encoder Driver 2016-07-08 14:10:51 -03:00
mx2_emmaprp.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
rcar_jpu.c [media] rcar_jpu: Add R-Car Gen2 Fallback Compatibility String 2016-02-01 09:48:19 -02:00
sh_veu.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
sh_vou.c [media] media: videobuf2: Move timestamp to vb2_buffer 2015-12-18 13:53:31 -02:00
via-camera.c [media] include/media: split I2C headers from V4L2 core 2015-11-17 06:57:11 -02:00
via-camera.h
vim2m.c [media] vim2m: return error if driver registration fails 2016-02-01 07:37:46 -02:00