Messages in this thread Patch in this message | | | Date | Wed, 10 Dec 2003 13:08:54 -0800 | From | Greg KH <> | Subject | Re: [linux-usb-devel] Re: [OOPS, usbcore, releaseintf] 2.6.0-test10-mm1 |
| |
On Wed, Dec 10, 2003 at 12:46:21PM -0800, Greg KH wrote: > > Of course, if all you want to do is unload the module then it doesn't > > matter which host is which. You just have to wait until they are all > > gone. > > Exactly, and that will happen, if we wait on that > class_device_unregister() call. An example of how to do that can be > seen in the i2c_del_adapter() function in drivers/i2c/i2c-core.c.
Ok, below is the patch. I've only compile tested it, not run it yet. Please let me know if it works for you or not.
thanks,
greg k-h
===== hcd.c 1.123 vs edited ===== --- 1.123/drivers/usb/core/hcd.c Sun Dec 7 04:29:05 2003 +++ edited/hcd.c Wed Dec 10 13:06:19 2003 @@ -588,6 +588,9 @@ if (bus->release) bus->release(bus); + /* FIXME change this when the driver core gets the + * class_device_unregister_wait() call */ + complete(&bus->released); } static struct class usb_host_class = { @@ -724,7 +727,11 @@ clear_bit (bus->busnum, busmap.busmap); + /* FIXME change this when the driver core gets the + * class_device_unregister_wait() call */ + init_completion(&bus->released); class_device_unregister(&bus->class_dev); + wait_for_completion(&bus->released); } EXPORT_SYMBOL (usb_deregister_bus); ===== usb.h 1.164 vs edited ===== --- 1.164/include/linux/usb.h Mon Oct 6 10:46:13 2003 +++ edited/usb.h Wed Dec 10 13:07:27 2003 @@ -210,6 +210,8 @@ struct class_device class_dev; /* class device for this bus */ void (*release)(struct usb_bus *bus); /* function to destroy this bus's memory */ + /* FIXME, remove this when the driver core gets class_device_unregister_wait */ + struct completion released; }; #define to_usb_bus(d) container_of(d, struct usb_bus, class_dev) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |