Hi,
the module usage count of that driver was broken. The included patch removes
it from open/release, as the chardev code does that already and removed from
probe/disconnect and an owner entry added to the usb_driver structure.
Regards
Oliver
--- auerswald.c.alt Sun Jan 13 19:24:01 2002
+++ auerswald.c Sun Jan 13 19:24:08 2002
@@ -1376,9 +1376,6 @@
}
up (&dev_table_mutex);
- /* prevent module unloading */
- MOD_INC_USE_COUNT;
-
/* we have access to the device. Now lets allocate memory */
ccp = (pauerchar_t) kmalloc(sizeof(auerchar_t), GFP_KERNEL);
if (ccp == NULL) {
@@ -1415,7 +1412,6 @@
/* Error exit */
ofail: up (&cp->mutex);
auerchar_delete (ccp);
- MOD_DEC_USE_COUNT;
return ret;
}
@@ -1831,9 +1827,6 @@
up (&ccp->mutex);
auerchar_delete (ccp);
- /* release the module */
- MOD_DEC_USE_COUNT;
-
return 0;
}
@@ -1892,9 +1885,6 @@
/* we use only the first -and only- interface */
if (ifnum != 0) return NULL;
- /* prevent module unloading while sleeping */
- MOD_INC_USE_COUNT;
-
/* allocate memory for our device and intialize it */
cp = kmalloc (sizeof(auerswald_t), GFP_KERNEL);
if (cp == NULL) {
@@ -2015,7 +2005,6 @@
/* Error exit: clean up the memory */
pfail: auerswald_delete (cp);
- MOD_DEC_USE_COUNT;
return NULL;
}
@@ -2081,8 +2070,6 @@
}
}
- /* The device releases this module */
- MOD_DEC_USE_COUNT;
}
/* Descriptor for the devices which are served by this driver.
@@ -2102,6 +2089,7 @@
/* Standard usb driver struct */
static struct usb_driver auerswald_driver = {
+ owner: THIS_MODULE,
name: "auerswald",
probe: auerswald_probe,
disconnect: auerswald_disconnect,
@@ -2154,3 +2142,4 @@
module_exit (auerswald_cleanup);
/* --------------------------------------------------------------------- */
+
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel