On Wed, Aug 31, 2011 at 11:05 PM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > You might want to remove also the first wmb() in qh_append_tds(). I think the first wmb() is used to order the two writing: qtd->hw_token = HALT_BIT(ehci); wmb () *dummy = *qtd; Since dummy has been in hw queue already and must see halt bit of hw_token first, the barrier should be kept, otherwise the transaction represented by qtd may be executed too early and qtd->hw_next is still not ready. thanks, -- Ming Lei -- 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