> For (b) there are several options. Today we expect (b1) device
> driver handles all in disconnect(), except that to guard against
> bugs there sometimes (b2) HCD may need to get involved. I'd
> think a cleaner solution would be (b3) usbcore kills them all;
> less work for device drivers too.
>From an abstract standpoint I fully agree. From a standpoint
of wishing for 2.6.0 to be released this year with a solid USB stack,
I disagree.
It needs usbcore to keep track of URBs. It currently doesn't.
At a minimum usbcore would need to keep URBs in per
interface lists and use locking against device _and_ interface
in several places. And that's just a first thought.
It's less simple to do than desirable to be done.
[..]
> - usb_unlink_urb() ignores dev->present.
Exactly.
> - usb_disconnect() sets dev->present first thing.
This needs locking, else it's a race on SMP.
Duncan made patches that implement this.
Regards
Oliver
-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel