> 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

Reply via email to