On Wed, 12 Sep 2012, Hemant Kumar wrote: > Hi Alen, > > if we add check for ehci->reclaim->qh_state == QH_STATE_UNLINK in > ehci_irq() and ehci_iaa_watchdog() i still see a race : > what if end_unlink_async for QH1 called start_unlink_async(QH2) and IAAD > interrupt fired after QH2->qh_state is set to QH_STATE_UNLINK. You're right; that's still a problem. Unfortunately, there's nothing we can do about it. It is the unavoidable result of using flawed hardware. I suppose you could increase the IAA Watchdog timeout to 20 ms. But that wouldn't solve the problem; the race could still occur. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html