> Ah, but re-submission of an interrupt URB from within the completion
> handler will run in interrupt context.
That we'll have to deal with later.
> This could also be entirely solved by making the requirements that:
> (1) The core or HCD will unlink all URBs for a removed device when
> it's removed
To do so you need to add the urb to a per device list, which has to be
locked. The problems arise if you loose the race. Where do you put the
lock ?
> (2) The mid- and high-level drivers will not submit any more URBs
> to the removed device once the disconnect() routine has ended.
You need to block usb_submit_urb() for disconnected devices.
To know whether a device has been unplugged, you need to scan all
connected devices. This sucks.
> If you think about it, some of this is needed anyway. After all, there
> will always be the fundamental race of the cable being pulled, and URB
> being submitted, and then the disconnect function getting called. We could
That's not a problem. On that level a disconnected device is just a source
of continuous io errors.
> require the disconnect to unlink the URBs, but since the core/HCDs have to
> be able to accept (at least for a small window) URBs for a removed device,
> why not put the logic all in one place?
Because it's a twofold problem. The device going away and the device
descriptor going away. The latter is the hard part.
> After all, it used to work this way....
How so? When?
Regards
Oliver
-------------------------------------------------------
This sf.net email is sponsored by: Influence the future
of Java(TM) technology. Join the Java Community
Process(SM) (JCP(SM)) program now.
http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0002en
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel