Hi, > This happens when the xHCI driver enqueue a control TD (which cross > over the Link TRB between two ring segments, as shown) in the endpoint > zero's transfer ring. Seems the Etron xHCI host can not perform this > TD correctly, causing the USB transfer error occurred, maybe the upper > driver retry that control-IN request can solve problem, but not all > drivers do this. > > | | > ------- > | TRB | Setup Stage > ------- > | TRB | Link > ------- > ------- > | TRB | Data Stage > ------- > | TRB | Status Stage > ------- > | | I wonder about a few things. 1. What are the exact symptoms, besides Ethernet driver errors? Any errors from xhci_hcd? What if dynamic debug is enabled? 2. How did you determine that this is the exact cause? 3. Does it happen every time when a Link follows Setup, or only randomly and it takes lots of control transfers to trigger it? 4. How is it even possible? As far as I see, Linux simply queues three TRBs for a control URB. There are 255 slots in a segemnt, so exactly 85 URBs should fit, and then back to the first slot. Regards, Michal