[HID] Fix hiddev devfs oops

From: Herbert Xu
Date: Tue Oct 05 2004 - 07:51:50 EST


Hi:

There is a long-standing devfs_unregister oops in hid/hiddev. It's
caused by hid calling hiddev_exit before unregistering itself which
in turn calls hiddev_disconnect.

hiddev_exit removes the directory which contains the hiddev devices.
Therefore it needs to be called after the hiddev devices have been
disconnected.

This patch fixes that.

Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>

Marcelo, the same fix is needed in 2.4 as well.

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
===== drivers/usb/input/hid-core.c 1.94 vs edited =====
--- 1.94/drivers/usb/input/hid-core.c 2004-08-25 22:01:29 +10:00
+++ edited/drivers/usb/input/hid-core.c 2004-10-05 22:44:03 +10:00
@@ -1859,8 +1859,8 @@

static void __exit hid_exit(void)
{
- hiddev_exit();
usb_deregister(&hid_driver);
+ hiddev_exit();
}

module_init(hid_init);
===== drivers/usb/hid-core.c 1.30 vs edited =====
--- 1.30/drivers/usb/hid-core.c 2004-08-08 18:59:53 +10:00
+++ edited/drivers/usb/hid-core.c 2004-10-05 22:33:52 +10:00
@@ -1459,8 +1459,8 @@

static void __exit hid_exit(void)
{
- hiddev_exit();
usb_deregister(&hid_driver);
+ hiddev_exit();
}

module_init(hid_init);