aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/pvrusb2/pvrusb2-main.c
diff options
context:
space:
mode:
authorMike Isely <isely@pobox.com>2007-11-03 00:06:42 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-11-04 21:41:30 -0200
commit4f663bdc65307e38401aa3b787a7a7569f28b920 (patch)
treeaea1066d6df027b5a194d5367fab0bd3b7841c80 /drivers/media/video/pvrusb2/pvrusb2-main.c
parentV4L/DVB (6547): V4L: remove PCI from VIDEO_VIVI depends (diff)
downloadlinux-dev-4f663bdc65307e38401aa3b787a7a7569f28b920.tar.xz
linux-dev-4f663bdc65307e38401aa3b787a7a7569f28b920.zip
V4L/DVB (6548): pvrusb2: Fix oops on module removal
The pvrusb2 driver is tearing down its sysfs related pieces in the incorrect order. This leaves dangling pointers which causes the kernel device core to oops. The problem has been present virtually forever but became malignant with the changeover to the way of handling /sys/class. Fix is just to make sure we don't tear down the class structure until AFTER the driver instances are deregistered. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video/pvrusb2/pvrusb2-main.c')
-rw-r--r--drivers/media/video/pvrusb2/pvrusb2-main.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/media/video/pvrusb2/pvrusb2-main.c b/drivers/media/video/pvrusb2/pvrusb2-main.c
index ca9e2789c8ca..11b3b2e84b90 100644
--- a/drivers/media/video/pvrusb2/pvrusb2-main.c
+++ b/drivers/media/video/pvrusb2/pvrusb2-main.c
@@ -136,14 +136,13 @@ static int __init pvr_init(void)
static void __exit pvr_exit(void)
{
-
pvr2_trace(PVR2_TRACE_INIT,"pvr_exit");
+ usb_deregister(&pvr_driver);
+
#ifdef CONFIG_VIDEO_PVRUSB2_SYSFS
pvr2_sysfs_class_destroy(class_ptr);
#endif /* CONFIG_VIDEO_PVRUSB2_SYSFS */
-
- usb_deregister(&pvr_driver);
}
module_init(pvr_init);