Here's a patch against 2.5.42 that allows usb host controller drivers to
be unloaded (and then loaded again).  It also adds two more debugging
messages that might be helpful showing what devices are getting
disconnected in which order.

If anyone still has problems unloading host controllers after applying
this patch, please let me know.

thanks,

greg k-h


diff -Nru a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
--- a/drivers/usb/core/usb.c    Mon Oct 14 17:09:22 2002
+++ b/drivers/usb/core/usb.c    Mon Oct 14 17:09:22 2002
@@ -790,6 +790,7 @@
                        usb_disconnect(child);
        }
 
+       dbg ("unregistering interfaces on device %d", dev->devnum);
        if (dev->actconfig) {
                for (i = 0; i < dev->actconfig->bNumInterfaces; i++) {
                        struct usb_interface *interface = 
&dev->actconfig->interface[i];
@@ -799,12 +800,13 @@
                }
        }
 
+       dbg ("unregistering the device %d", dev->devnum);
        /* Free the device number and remove the /proc/bus/usb entry */
        if (dev->devnum > 0) {
                clear_bit(dev->devnum, dev->bus->devmap.devicemap);
                usbfs_remove_device(dev);
-               device_unregister(&dev->dev);
        }
+       device_unregister(&dev->dev);
 
        /* Decrement the reference count, it'll auto free everything when */
        /* it hits 0 which could very well be now */


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to