summaryrefslogtreecommitdiffstats
path: root/drivers/media/radio
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2010-10-11 12:36:37 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2010-10-21 01:18:15 -0200
commit9c84d89bf13b702ca0e0db5eb3880300c4bd58f4 (patch)
treec0b11f9fe5e386187881d59247a9e274046d7660 /drivers/media/radio
parent1cd72781db93c00fbee0bf4aed9e310a1d589738 (diff)
[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: David Ellingsworth <david@identd.dyndns.org> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Acked-by: David Ellingsworth <david@identd.dyndns.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/radio')
-rw-r--r--drivers/media/radio/radio-mr800.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/media/radio/radio-mr800.c b/drivers/media/radio/radio-mr800.c
index 97967ad3cd1..2f56b26cece 100644
--- a/drivers/media/radio/radio-mr800.c
+++ b/drivers/media/radio/radio-mr800.c
@@ -285,8 +285,8 @@ static void usb_amradio_disconnect(struct usb_interface *intf)
mutex_lock(&radio->lock);
v4l2_device_disconnect(&radio->v4l2_dev);
- video_unregister_device(&radio->videodev);
mutex_unlock(&radio->lock);
+ video_unregister_device(&radio->videodev);
}
/* vidioc_querycap - query device capabilities */