I'm hiting a dead lock when testing, by using testusb suite tests, hot unplug. Basicaly, while running a test, I unplug the tested device (zero device) at a random time. Most of the time, testusb's process and khubd are in an uninterruptible state and the bus is "frozen".
Here is a use case that may happen (?) and thus may explain my deadlock: First, testusb.c is doing an ioctl on the "usbtest" driver. This way it acquires the device's semaphore by calling "usb_lock_device" in "usbdev_ioctl". Then it waits for the completion of the urbs it queued for its testing purpose. [The zero device is unplugged now] khubd is wake up and notices that the device has gone. It finally calls "usb_disconnect" function which in its turn calls "usb_lock_device" _before_ unlinking all queued urbs. Since the semaphore is already hold, it's going to sleep. Since no urbs are unlinked, "usbtest" driver will never wake up since it's waiting for completion of all urbs. Do you think that's possible ? Thanks -- Franck ------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel