]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: usbtv: Remove useless locks in usbtv_video_free()
authorBenjamin Gaignard <benjamin.gaignard@collabora.com>
Sat, 2 Mar 2024 10:37:08 +0000 (11:37 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Oct 2024 13:11:22 +0000 (15:11 +0200)
[ Upstream commit 65e6a2773d655172143cc0b927cdc89549842895 ]

Remove locks calls in usbtv_video_free() because
are useless and may led to a deadlock as reported here:
https://syzkaller.appspot.com/x/bisect.txt?x=166dc872180000
Also remove usbtv_stop() call since it will be called when
unregistering the device.

Before 'c838530d230b' this issue would only be noticed if you
disconnect while streaming and now it is noticeable even when
disconnecting while not streaming.

Fixes: c838530d230b ("media: media videobuf2: Be more flexible on the number of queue stored buffers")
Fixes: f3d27f34fdd7 ("[media] usbtv: Add driver for Fushicai USBTV007 video frame grabber")
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@collabora.com>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Tested-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
[hverkuil: fix minor spelling mistake in log message]
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/usb/usbtv/usbtv-video.c

index a714ad77ca8e24ae1ee9d641dc72bf301ab52dfe..e5fcf53229812bf684da1fd71123ec4cf681f74f 100644 (file)
@@ -959,15 +959,8 @@ ctrl_fail:
 
 void usbtv_video_free(struct usbtv *usbtv)
 {
-       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);
-       mutex_unlock(&usbtv->vb2q_lock);
-
        v4l2_device_put(&usbtv->v4l2_dev);
 }