<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">ChangeSet 1.994.1.3, 2003/03/28 14:16:14-08:00, oliver@neukum.org

[PATCH] USB: leave usage counts during probe/remove to driver core

driver core protects us with semaphores during probe/disconnect. We can
stop messing with the module usage counts.


 drivers/usb/core/usb.c |   18 ------------------
 1 files changed, 18 deletions(-)


diff -Nru a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
--- a/drivers/usb/core/usb.c	Mon Apr  7 15:15:30 2003
+++ b/drivers/usb/core/usb.c	Mon Apr  7 15:15:30 2003
@@ -89,11 +89,6 @@
 	if (!driver-&gt;probe)
 		return error;
 
-	if (!try_module_get(driver-&gt;owner)) {
-		dev_err (dev, "Can't get a module reference for %s\n", driver-&gt;name);
-		return error;
-	}
-
 	id = usb_match_id (intf, driver-&gt;id_table);
 	if (id) {
 		dev_dbg (dev, "%s - got id\n", __FUNCTION__);
@@ -104,8 +99,6 @@
 	if (!error)
 		intf-&gt;driver = driver;
 
-	module_put(driver-&gt;owner);
-
 	return error;
 }
 
@@ -123,16 +116,6 @@
 		return -ENODEV;
 	}
 
-	if (!try_module_get(driver-&gt;owner)) {
-		// FIXME this happens even when we just rmmod
-		// drivers that aren't in active use...
-		dev_err(dev, "Dieing driver still bound to device.\n");
-		return -EIO;
-	}
-
-	/* if we sleep here on an umanaged driver 
-	 * the holder of the lock guards against 
-	 * module unload */
 	down(&amp;driver-&gt;serialize);
 
 	if (intf-&gt;driver &amp;&amp; intf-&gt;driver-&gt;disconnect)
@@ -143,7 +126,6 @@
 		usb_driver_release_interface(driver, intf);
 
 	up(&amp;driver-&gt;serialize);
-	module_put(driver-&gt;owner);
 
 	return 0;
 }
</pre></body></html>