Re: Help needed for EHCI problem: removing an active bulk-in QH

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

 



On Thu, 29 Oct 2015, Peter Chen wrote:

> > > [In practice it's not feasible to wait for an active QH to become
> > > inactive before removing it, for several reasons.  For one, the QH may
> > > _never_ become inactive (if the endpoint NAKs indefinitely).  For
> > > another, the procedure given in the spec (deactivate the qTDs on the
> > > queue) is racy, since the controller can perform a new overlay or
> > > writeback at any time.]
> > > 
> 
> Alan, one question, what will happen if we never remove an active QH from
> async list?

You mean, what would happen if the driver simply left the QH in the 
async list instead of removing it?  There would be two consequences.

First, the controller would continue to perform DMA reads of the QH.  
These unnecessary reads would consume both PCI (or whatever bus the
controller is on) and memory bandwidth.

Second, when you unlinked an active URB, the controller would not stop 
the transfer.  It would continue even after the URB was unlinked, until 
the the transfer was complete, an error occurred, or the controller was 
shut down.  Basically, it would be impossible to unlink an active URB.

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