[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250228181459.2ec1d29c@foxbook>
Date: Fri, 28 Feb 2025 18:14:59 +0100
From: Michał Pecio <michal.pecio@...il.com>
To: Mathias Nyman <mathias.nyman@...ux.intel.com>
Cc: Kuangyi Chiang <ki.chiang65@...il.com>, gregkh@...uxfoundation.org,
linux-kernel@...r.kernel.org, linux-usb@...r.kernel.org,
mathias.nyman@...el.com, stable@...r.kernel.org
Subject: Re: [PATCH] usb: xhci: Handle quirky SuperSpeed isoc error
reporting by Etron HCs
On Fri, 28 Feb 2025 18:11:46 +0100, Michał Pecio wrote:
> What are your thoughts about killing error_mid_td completely and using
> a similar mechanism to deal with those final events?
>
> 1. The events would be taken care of.
>
> 2. It should be OK wrt DMA, because the HC has no reason to touch data
> buffers after an error. Short Packet is done this way and it works.
>
> 3. A remaining problem is that dequeue is advanced to end_trb too soon
> and "tail" of the TD could be overwritten. Already a problem with
> Short Packet and I think it can be solved by replacing most
> xhci_dequeue_td() calls with xhci_td_cleanup() and adding to
> handle_tx_event():
>
> ep_ring->dequeue = ep_trb;
> ep_ring->deq_seg = ep_seg;
Forgot to add:
4. Guaranteed low latency of error reporting.
5. Some annoying code for giving back 'error_mid_td' URBs under weird
corner cases that I recently spent a few hours writing could be thrown
out and handle_tx_event() would become a little simpler.
Powered by blists - more mailing lists