media: exynos4-is: Fix recursive locking in isp_video_release() 44/217444/1
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Fri, 18 Oct 2019 10:20:52 +0000 (07:20 -0300)
committerSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 12 Nov 2019 01:28:34 +0000 (10:28 +0900)
>From isp_video_release(), &isp->video_lock is held and subsequent
vb2_fop_release() tries to lock vdev->lock which is same with the
previous one. Replace vb2_fop_release() with _vb2_fop_release() to
fix the recursive locking.

Fixes: 1380f5754cb0 ("[media] videobuf2: Add missing lock held on vb2_fop_release")
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
[sw0312.kim: cherry-pick mainline commit 704c6c80fb47 to handle exynos4-is issue]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: Ibbfbc33b83dc17e86d8b030c0f7f7e101d6293c7

drivers/media/platform/exynos4-is/fimc-isp-video.c

index a920164..39340ab 100644 (file)
@@ -316,7 +316,7 @@ static int isp_video_release(struct file *file)
                ivc->streaming = 0;
        }
 
-       vb2_fop_release(file);
+       _vb2_fop_release(file, NULL);
 
        if (v4l2_fh_is_singular_file(file)) {
                fimc_pipeline_call(&ivc->ve, close);