On Wed, 17 Sep 2014, Joe Lawrence wrote: > On Tue, 16 Sep 2014 15:29:20 -0400 > Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > > ... And now I see the problem. It's these two lines just before the > > "switch": > > > > if (ehci->rh_state < EHCI_RH_RUNNING) > > qh->qh_state = QH_STATE_IDLE; > > > > That undoubtedly caused us to destroy the QH directly without unlinking > > it first. > > > > I'm pretty sure those two lines aren't needed any more. Try removing > > them and see if the problem persists. > > Much better! Two machines running the same set of device removal tests > are still running (kicked off ~5pm Tues). Typically the qh_destroy > BUG would be hit within a few hours of testing. > > (I left the "BUG_ON(ehci->async->qh_next.qh == qh)" in > ehci_endpoint_disable as an assertion. Obviously no hits on that > either.) Very good. I reviewed the rest of the code to make sure that removing those lines won't cause any other problems. It looks safe, so I have submitted a patch. > Thanks for the debug! You're welcome. 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