瀏覽代碼

[media] usbvision: fix locking error

When remove_pending is non-zero, v4l2_lock is never unlocked.

Signed-off-by: Insu Yun <wuninsu@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
Insu Yun 9 年之前
父節點
當前提交
5ce625a42d
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/media/usb/usbvision/usbvision-video.c

+ 1 - 1
drivers/media/usb/usbvision/usbvision-video.c

@@ -1147,6 +1147,7 @@ static int usbvision_radio_close(struct file *file)
 	usbvision_audio_off(usbvision);
 	usbvision_audio_off(usbvision);
 	usbvision->radio = 0;
 	usbvision->radio = 0;
 	usbvision->user--;
 	usbvision->user--;
+	mutex_unlock(&usbvision->v4l2_lock);
 
 
 	if (usbvision->remove_pending) {
 	if (usbvision->remove_pending) {
 		printk(KERN_INFO "%s: Final disconnect\n", __func__);
 		printk(KERN_INFO "%s: Final disconnect\n", __func__);
@@ -1155,7 +1156,6 @@ static int usbvision_radio_close(struct file *file)
 		return 0;
 		return 0;
 	}
 	}
 
 
-	mutex_unlock(&usbvision->v4l2_lock);
 	PDEBUG(DBG_IO, "success");
 	PDEBUG(DBG_IO, "success");
 	return v4l2_fh_release(file);
 	return v4l2_fh_release(file);
 }
 }