On Thu, Oct 29, 2015 at 10:37:28AM -0400, Alan Stern wrote: > After reading spec at 4.8.2: Software must not remove an active queue head from the schedule. Software should first deactivate all active qTDs, wait for the queue head to go inactive, then remove the queue head from the asynchronous list. But current software removes an active queue head first, then deactivates qTDs for the unlinked queue head. What's possible harm if we deactivates qTDs first, then unlink the queue head directly without waiting. > [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). Yes, > 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.] > But that queue head will be unlinked soon, software (or controller) will not use a new overlay or a new writeback, isn't it? -- Best Regards, Peter Chen -- 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