I think you're right here; there are (at least) 3 things that need to be done when disconnecting a driver from a device (interface):#2 is currently the driver's responsibility, as part of #1;
1. The driver must stop using the interface.
2. All pending URBs must be aborted.
3. The device (or interface) should be placed into a stable/reset state.
...
Currently, #1 is done by usbdevfs, not (AFAIK) #2. And #3 is really up to whatever new driver takes over.
it's not really separarable, since if there were a pending URB
that's not aborted, #1 wouldn't have been achieved.
In fact patches have recently been integrated (2.4, 2,5)
to address a usbfs bug where it wasn't doing that.
Yes, any new driver's probe() normally handles #3. For
usbfs it's necessarily factored a bit differently, since
there's no probe(), but it's still the responsibility of
that driver.
- Dave
-------------------------------------------------------
This SF.net email is sponsored by: Microsoft Visual Studio.NET comprehensive development tool, built to increase your productivity. Try a free online hosted session at:
http://ads.sourceforge.net/cgi-bin/redirect.pl?micr0003en
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
