media: exynos4-is: Fix recursive locking in isp_video_release()
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Fri, 18 Oct 2019 10:20:52 +0000 (07:20 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 23 Jan 2020 07:19:36 +0000 (08:19 +0100)
commit 704c6c80fb471d1bb0ef0d61a94617d1d55743cd upstream.

>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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/media/platform/exynos4-is/fimc-isp-video.c

index e00fa03ddc3e99c3376c0b798369baca244fcfe6..0c0eec671d4995c26100a55f80d96f6e4a540263 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);