On Thursday 17 May 2007, Pete Zaitcev wrote: > On Thu, 17 May 2007 14:26:18 -0400 (EDT), Alan Stern <[EMAIL PROTECTED]> > wrote: > > > As it happens, USB callbacks cannot be interrupted. That's a somewhat > > artificial restriction; in theory there's no reason we couldn't allow > > interrupts. > > Do you remember why we're doing this? I did not touch that part since > the attempt to keep usb->lock across the callback (read: years back).
HCDs have, for historical reasons, issued URB completions in their IRQ handlers. In order to do that correctly -- since completion handlers need to be able to submit URBs -- that must be done while (a) dropping the HCD's internal spinlock, but also (b) not re-enabling the HCD's IRQ, and a bit more subtly (c) ensuring certain HCD-internal state doesn't change until after the completion returns. Examples of (c) being the release of some reserved periodic bandwidth, or cleanup then re-enabling a halted bulk queue. - Dave ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel