--- x/drivers/media/usb/usbtv/usbtv-video.c +++ y/drivers/media/usb/usbtv/usbtv-video.c @@ -963,11 +963,11 @@ ctrl_fail: void usbtv_video_free(struct usbtv *usbtv) { + usbtv_stop(usbtv); + vb2_video_unregister_device(&usbtv->vdev); mutex_lock(&usbtv->vb2q_lock); mutex_lock(&usbtv->v4l2_lock); - usbtv_stop(usbtv); - vb2_video_unregister_device(&usbtv->vdev); v4l2_device_disconnect(&usbtv->v4l2_dev); mutex_unlock(&usbtv->v4l2_lock);