Hi,
The following patch from Alan Stern <[EMAIL PROTECTED]> fixes a
bug in the current USB code that causes khubd to hang when a device is
removed from the system, thereby preventing any future USB device
changes (like adding or removing other devices) from happening.
Both Andrew and I can easily duplicate this bug against the current -bk
tree.
It's not a perfect fix, but it works for now, and I will spend the next
week working on restructuring the code so this is handled properly.
thanks,
greg k-h
--- 1.73/drivers/usb/core/message.c Wed Mar 17 14:16:47 2004
+++ edited/drivers/usb/core/message.c Wed Mar 24 10:17:04 2004
@@ -794,9 +794,6 @@
static void release_interface(struct device *dev)
{
- struct usb_interface *interface = to_usb_interface(dev);
-
- complete(interface->released);
}
/*
@@ -828,16 +825,12 @@
if (dev->actconfig) {
for (i = 0; i < dev->actconfig->desc.bNumInterfaces; i++) {
struct usb_interface *interface;
- struct completion intf_completion;
/* remove this interface */
interface = dev->actconfig->interface[i];
dev_dbg (&dev->dev, "unregistering interface %s\n",
interface->dev.bus_id);
- init_completion (&intf_completion);
- interface->released = &intf_completion;
device_unregister (&interface->dev);
- wait_for_completion (&intf_completion);
}
dev->actconfig = 0;
if (dev->state == USB_STATE_CONFIGURED)
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel