Hi all, Sorry for bothering you. : ) The problem is that I don't understand why swapping dummy qtd is needed in queue requests. After tracing the code, I know that dummy qtd is already in the qtd list of qh, and the host controller must see dummy qtd before the new qtd list is added to queue head. But what is the difference if dummy qtd is not used to swap the first qtd entry ?? and the source code's comment say that the method can "avoid racing the HC". I can't figure out why swap dummy qtd is related to "avoid racing the HC" ?? Could someone please help me to figure this out ?? thanks -- 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