Commit 9c84d89b authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab

[media] radio-mr800: fix locking order

Don't hold the lock before unregistering the device, since when the
device is unregistered the datastruct containing the lock may be freed
(if the refcount went to 0).

Also fixed the framework documentation that erroneously suggested the
wrong locking order as well.
Reported-by: default avatarDavid Ellingsworth <david@identd.dyndns.org>
Signed-off-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Acked-by: default avatarDavid Ellingsworth <david@identd.dyndns.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 1cd72781
...@@ -488,7 +488,7 @@ also waits in the code, then you should do the same to allow other processes ...@@ -488,7 +488,7 @@ also waits in the code, then you should do the same to allow other processes
to access the device node while the first process is waiting for something. to access the device node while the first process is waiting for something.
The implementation of a hotplug disconnect should also take the lock before The implementation of a hotplug disconnect should also take the lock before
calling v4l2_device_disconnect and video_unregister_device. calling v4l2_device_disconnect.
video_device registration video_device registration
------------------------- -------------------------
......
...@@ -285,8 +285,8 @@ static void usb_amradio_disconnect(struct usb_interface *intf) ...@@ -285,8 +285,8 @@ static void usb_amradio_disconnect(struct usb_interface *intf)
mutex_lock(&radio->lock); mutex_lock(&radio->lock);
v4l2_device_disconnect(&radio->v4l2_dev); v4l2_device_disconnect(&radio->v4l2_dev);
video_unregister_device(&radio->videodev);
mutex_unlock(&radio->lock); mutex_unlock(&radio->lock);
video_unregister_device(&radio->videodev);
} }
/* vidioc_querycap - query device capabilities */ /* vidioc_querycap - query device capabilities */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment