Actually all of the interesting work is triggered by khubd,
and then the device driver.
Khubd calls usb_disconnect() for the device. That disconnects
each driver (which is supposed to wait until all urbs it's
submitted have completed, and not submit any more URBS).
Only at the very end of this does the HCD hear anything about
devices going away. If there's any URB still submitted at that
point it's not a bug in the HCD at all ... but in a device
driver that didn't implement disconnect() correctly.
- Dave
-
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/