Re: [PATCH 1/5] usb: xhci: Handle bogus TRB pointers in Missed Service Error events
Mathias Nyman <[email protected]> Wed, 5 Aug 2026 20:13:13 +0300
| Newsgroups | org.kernel.vger.linux-usb,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On 8/4/26 13:02, Michal Pecio wrote: > xHCI 1.0 allowed these pointers to be zero. Some Intel chipsets from the > era usually set it to zero, but sometimes (apparently) to the next TRB > after the one referenced by the previous transfer event on the endpoint. > > Usually that's indeed the missed TD, but it may also be the last TRB of > a two-TRB TD already completed with Short Packet on its first TRB. Then > the driver skips all pending TDs, failing to find a match. > > When handling Missed Service Error, scan TD list twice and only really > skip TDs in the second pass if the first pass found a match. This won't > catch bogus pointers to wrong TDs, but such a bug would be practically > impossible to detect automatically and isn't known to exist. > > Reported-by: Bart Nagel <[email protected]> > Closes: https://lore.kernel.org/linux-usb/al_hchyOdPoPWKEo@spiral/ > Suggested-by: Mathias Nyman <[email protected]> > Fixes: d0b619599e52 ("usb: xhci: Expedite skipping missed isoch TDs on modern HCs") > Cc: [email protected] > Signed-off-by: Michal Pecio <[email protected]> > --- Thanks, I'll send this [PATCH 1/5] forward to 7.3 with rest of patches in for-usb-next -Mathias