On Thu, 17 May 2007 17:37:22 -0700, David Brownell <[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). >[...] > > I understand the points a-c above. The question is, why do we do > > local_irq_save across the URB callback? It seems to be completely > > non-functional. > > Where is that done? The HCDs just seem to call usb_hcd_giveback_urb() > after dropping their internal spinlock (except the u132 one, which has > always been kind of dubious and acts unmaintained). And that routine > doesn't do a local_irq_save. Absolutely right, I'm being an idiot here. I think I looked at root hub code in the rush to the FreedomHEC preparations. We do not have local_irq_save in the giveback routine. So, when Alan wrote "USB callbacks cannot be interrupted", he meant normal no-reentrancy guarantees, and not that the interrupts are disabled. -- Pete ------------------------------------------------------------------------- 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