Re: Hitting "unused qh not empty" BUG in qh_destroy

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux