From: Michal Pecio <michal.pecio@gmail.com>
To: Mathias Nyman <mathias.nyman@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Bart Nagel <bart@tremby.net>,
linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH 3/5] usb: xhci: Don't set the skip flag on non-isoc endpoints
Date: Tue, 4 Aug 2026 12:03:56 +0200 [thread overview]
Message-ID: <20260804120356.470fab4b.michal.pecio@gmail.com> (raw)
In-Reply-To: <20260804120110.01bda0e2.michal.pecio@gmail.com>
These events are unique to isochronous endpoints, ignore them otherwise.
Update debug messages to reflect new policies. We could also log invalid
events as errors, but it seems nobody has ever had problems with that,
so don't bother.
This allows dropping the isoc check when skipping TDs.
Signed-off-by: Michal Pecio <michal.pecio@gmail.com>
---
drivers/usb/host/xhci-ring.c | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 8eed56b72c30..8270c63ec3bf 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -2759,16 +2759,18 @@ static int handle_tx_event(struct xhci_hcd *xhci,
* Set skip flag of the ep_ring; Complete the missed tds as
* short transfer when process the ep_ring next time.
*/
- ep->skip = true;
+ if (ep_ring->type == TYPE_ISOC)
+ ep->skip = true;
xhci_dbg(xhci,
- "Miss service interval error for slot %u ep %u, set skip flag%s\n",
- slot_id, ep_index, ep_trb_dma ? ", skip now" : "");
+ "Missed Service Error for slot %u ep %u, skip %d, try now %d\n",
+ slot_id, ep_index, ep->skip, !!ep_trb_dma);
break;
case COMP_NO_PING_RESPONSE_ERROR:
- ep->skip = true;
+ if (ep_ring->type == TYPE_ISOC)
+ ep->skip = true;
xhci_dbg(xhci,
- "No Ping response error for slot %u ep %u, Skip one Isoc TD\n",
- slot_id, ep_index);
+ "No Ping response error for slot %u ep %u, skip %d\n",
+ slot_id, ep_index, ep->skip);
return 0;
case COMP_INCOMPATIBLE_DEVICE_ERROR:
@@ -2844,7 +2846,7 @@ static int handle_tx_event(struct xhci_hcd *xhci,
/* Is this TRB not part of the currently executing TD? */
if (!trb_in_td(td, ep_trb_dma)) {
- if (ep->skip && usb_endpoint_xfer_isoc(&td->urb->ep->desc)) {
+ if (ep->skip) {
/* this event is unlikely to match any TD, don't skip them all */
if (trb_comp_code == COMP_STOPPED_LENGTH_INVALID)
return 0;
--
2.48.1
next prev parent reply other threads:[~2026-08-04 10:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-04 10:01 [PATCH 0/5] xhci: Sort out the TD skipping business Michal Pecio
2026-08-04 10:02 ` [PATCH 1/5] usb: xhci: Handle bogus TRB pointers in Missed Service Error events Michal Pecio
2026-08-05 17:13 ` Mathias Nyman
2026-08-04 10:03 ` [PATCH 2/5] usb: xhci: Guarantee URB giveback on Ring Underrun/Overrun Michal Pecio
2026-08-04 10:03 ` Michal Pecio [this message]
2026-08-04 10:04 ` [PATCH 4/5] usb: xhci: Shorten the TD skipping loop Michal Pecio
2026-08-05 17:14 ` Mathias Nyman
2026-08-04 10:05 ` [PATCH 5/5] usb: xhci: Rework and improve the TD matching and skipping logic Michal Pecio
2026-08-05 17:39 ` Mathias Nyman
2026-08-05 19:30 ` Michal Pecio
2026-08-06 11:00 ` Michal Pecio
2026-08-06 22:16 ` Mathias Nyman
2026-08-05 19:06 ` [PATCH 0/5] xhci: Sort out the TD skipping business Bart Nagel
2026-08-05 20:21 ` Michal Pecio
2026-08-06 18:28 ` Bart Nagel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260804120356.470fab4b.michal.pecio@gmail.com \
--to=michal.pecio@gmail.com \
--cc=bart@tremby.net \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mathias.nyman@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox