On Wed, 5 Dec 2007 17:31:20 -0500 (EST), Alan Stern <[EMAIL PROTECTED]> wrote:
> [...] In fact every HCD _must_ keep interrupts disabled > while doing most of its IRQ processing. This is because an interrupt > could cause some random driver to submit an URB -- and URB submission > can't be done concurrently with IRQ processing since they both alter > the same data structures. Fair enough, but this is why the HCD has to do spin_lock_irqsave across the time when lists are being modified or otherwise inconsistent. It should not need to keep interrupts closed across executing callbacks for complete URBs. IMHO. In other message you wrote that: > However usb_hcd_unlink_urb_from_ep is documented as requiring > that it be called with interrupts disabled. I continue to think that methods with such requirements must not exist (at least not at the level we operate in USB stack; I can see a need for something like that in the architecture support code). It is unduly onerous to make sure the requirement is met while the code changes, and it leads to unnecessary expansion of time spent with interrupts off. I'm not going to appeal to Greg to have you overruled or anything, but I remain unconvinced. -- Pete - To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html