Oliver Neukum wrote:

I'd describe it a bit differently: it ensures that the first phase of disconnection (preventing new URB submissions) completes, for any/all devices, before anything needs to block for the second or third phases (which can take an arbitrarily long time because they need dev->serialize and the third phase calls driver disconnect methods).


Yes, that is true. But, maybe I am dense, but why can't this be done
by making state atomic or protect it by a spinlock?

Not dense ... but you do seem to have overlooked the (earlier) part of that note which said:

Maybe having a spinlock protect dev->state transitions would be
workable, but it'd likely be a larger patch.

"Atomic" might work too, except that the value is an enum not an integer so there'd be some type punning in the atomic_set() and atomic_read() calls.

- Dave




Regards Oliver






-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to