On Fri, 3 Oct 2003, Matthias Urlichs wrote: > OK, here's the debug output when I remove the keychain: > > Oct 3 17:41:32 linux kernel: hub 1-1:1.0: port 1, status 100, change 1, 12 Mb/s > Oct 3 17:41:32 linux kernel: usb 1-1.1: USB disconnect, address 4 > Oct 3 17:41:32 linux kernel: usb 1-1.1: usb_disable_device nuking all URBs > Oct 3 17:41:32 linux kernel: usb 1-1.1: unregistering interface 1-1.1:1.0 > Oct 3 17:41:32 linux kernel: bus usb: remove device 1-1.1:1.0 > Oct 3 17:41:32 linux kernel: usb-storage: storage_disconnect() called > Oct 3 17:41:32 linux kernel: usb-storage: usb_stor_stop_transport called > Oct 3 17:41:32 linux kernel: usb-storage: -- dissociate_dev > Oct 3 17:41:32 linux kernel: usb-storage: -- sending exit command to thread > Oct 3 17:41:32 linux kernel: usb-storage: *** thread awakened. > Oct 3 17:41:32 linux kernel: usb-storage: -- exit command received > Oct 3 17:41:32 linux kernel: usb-storage: -- usb_stor_release_resources finished > Oct 3 17:41:32 linux kernel: drivers/usb/core/usb.c: usb_hotplug > Oct 3 17:41:32 linux kernel: usb 1-1.1: unregistering device > Oct 3 17:41:32 linux kernel: bus usb: remove device 1-1.1 > Oct 3 17:41:32 linux kernel: drivers/usb/core/usb.c: usb_hotplug
Hmm... I get a lot more debugging information. It turns out that's because I'm using a development tree and it has some extra debugging options turned on. You can try doing the same by putting #define DEBUG 1 in place of #undef DEBUG in the following files: lib/kobject.c, drivers/base/bus.c, drivers/base/class.c, drivers/base/core.c, drivers/base/driver.c. The important part of the control flow is where storage_disconnect() in drivers/usb/storage/usb.c calls scsi_remove_host() in drivers/scsi/hosts.c. That call occurs between the "dissociate_dev" and the "sending exit command" log entries above, so we can be pretty sure that it is getting made. In turn, scsi_remove_host() calls class_device_unregister() and device_del(), and those calls should appear in the debugging log once you make the changes listed above. Somewhere in there is where the problem lies, and it may take a little work to track it down exactly. Alan Stern ------------------------------------------------------- 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