]> git.proxmox.com Git - mirror_ubuntu-disco-kernel.git/commitdiff
[media] usbvision: fix locking error
authorHans Verkuil <hans.verkuil@cisco.com>
Mon, 20 Jul 2015 12:59:35 +0000 (09:59 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Tue, 11 Aug 2015 09:53:21 +0000 (06:53 -0300)
If remove_pending is non-zero, then the v4l2_lock is never unlocked.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/usb/usbvision/usbvision-video.c

index 4f425f3600f651feaf634413ef055bcb7c0b698d..a5e82c08f13f57adcdcee66367d8a04f139acac0 100644 (file)
@@ -426,13 +426,13 @@ static int usbvision_v4l2_close(struct file *file)
        usbvision_scratch_free(usbvision);
 
        usbvision->user--;
+       mutex_unlock(&usbvision->v4l2_lock);
 
        if (usbvision->remove_pending) {
                printk(KERN_INFO "%s: Final disconnect\n", __func__);
                usbvision_release(usbvision);
                return 0;
        }
-       mutex_unlock(&usbvision->v4l2_lock);
 
        PDEBUG(DBG_IO, "success");
        return v4l2_fh_release(file);