Re: [PATCH 6.1 53/64] xhci: process isoc TD properly when there was a transaction error mid TD.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux