Hello, I believe I've found a bug in the USB driver (at least in the 2.4.23 kernel, I haven't checked anything newer)
The bug can be triggered by registering a driver for a USB device, while disconnecting the device at the same time. What happens is that a call is made to usb_register() which in turn calls usb_check_support() for each device. While a usb_device pointer is being held and examined, the khubd can call usb_disconnect() which then calls usb_free_dev() on potentionally the same device pointer. I tested a simple fix by protecting the usb_disconnect() critical code with the usb_bus_list_lock semaphore. I could no longer reproduce the same crash afterwards. Since I'm not really an experienced kernel hacker (just trying to write a driver for my USB device), I'm not sure this is the best way to fix it. Arlet ------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
