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]

 



> 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;
>  				}




[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