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