If dev_debug was active, then the code could return without unlocking the
core mutex. Replace the return with a 'goto unlock' to ensure proper unlocking.

Fixes: 73a110623e7b ("v4l2-core: push taking ioctl mutex down to ioctl handler")
Signed-off-by: Hans Verkuil <hans.verk...@cisco.com>
---
diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c 
b/drivers/media/v4l2-core/v4l2-ioctl.c
index 965fd301f617..dd210067151f 100644
--- a/drivers/media/v4l2-core/v4l2-ioctl.c
+++ b/drivers/media/v4l2-core/v4l2-ioctl.c
@@ -2777,7 +2777,7 @@ static long __video_do_ioctl(struct file *file,
        if (dev_debug & (V4L2_DEV_DEBUG_IOCTL | V4L2_DEV_DEBUG_IOCTL_ARG)) {
                if (!(dev_debug & V4L2_DEV_DEBUG_STREAMING) &&
                    (cmd == VIDIOC_QBUF || cmd == VIDIOC_DQBUF))
-                       return ret;
+                       goto unlock;

                v4l_printk_ioctl(video_device_node_name(vfd), cmd);
                if (ret < 0)

Reply via email to