Sarah Sharp <sarah.a.sharp@...> writes: > > The Microsoft LifeChat 3000 USB headset was causing a very reproducible > hang whenever it was plugged in. At first, I thought the host > controller was producing bad transfer events, because the log was filled > with errors like: > > xhci_hcd 0000:00:14.0: ERROR Transfer event TRB DMA ptr not part of current TD > > However, it turned out to be an xHCI driver bug in the ring expansion > patches. The bug is triggered When there are two ring segments, and a > TD that ends just before a link TRB, like so: [snip] > The transfer event would get ignored, the transfer would eventually > timeout, and we would mistakenly convert the finished transfer to no-op > TRBs. Some kernel driver (maybe xHCI?) would then get stuck in an > infinite loop in interrupt context, and the whole machine would hang. > > This patch should be backported to kernels as old as 3.4, that contain > the commit b008df60c6369ba0290fa7daa177375407a12e07 "xHCI: count free > TRBs on transfer ring" > > Signed-off-by: Sarah Sharp <sarah.a.sharp@...> > Cc: Andiry Xu <andiry.xu@...> Running into this semi-consistently with a pl2303 usb serial adapter on v3.4 after upgrading from v3.3 to get the mentioned fix ("no room on ep ring"). Building a 3.4 with this patch at the moment, will report back with the outcome. --Carey Underwood -- 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