On Tue, Feb 13, 2024 at 07:47:26PM +0100, Michał Pecio wrote: > > 6.1-stable review patch. If anyone has any objections, please let me > > know. > > I'm afraid this patch needs a little backporting for 6.1.x and earlier, > because it frees entries in the transfer ring and this seems to involve > updating a free space counter (num_trbs_free) on those kernel versions. > > There may be other incompatibilities, particularly in earlier versions, > I'm not clamining that this is a complete review. > > > Related patch "handle isoc Babble and Buffer Overrun events properly" > depends on this one and needs to wait until issues are resolved. > > > This is the problematic part which calls xhci_td_cleanup() and bypasses > finish_td() where the counting is normally done: > > + if (ep_seg) { > > + /* give back previous TD, start handling new */ > > + xhci_dbg(xhci, "Missing TD completion event after mid TD error\n"); > > + ep_ring->dequeue = td->last_trb; > > + ep_ring->deq_seg = td->last_trb_seg; > > + inc_deq(xhci, ep_ring); > > + xhci_td_cleanup(xhci, td, ep_ring, td->status); > > + td = td_next; > > } Ok, I will drop this for 6.1.x and older, please submit a working commit for these kernels if you wish to see it in them. thanks, greg k-h