All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@linuxfoundation.org>
To: Guan Wang <guan.wang.jy@gmail.com>
Cc: mathias.nyman@linux.intel.com, linux-usb@vger.kernel.org,
	guan.wang.jy@renesas.com
Subject: Re: [ISSUE REPORT] xHCI infinite endpoint reset loop on full-speed after transfer error
Date: Mon, 12 May 2025 09:15:08 +0200	[thread overview]
Message-ID: <2025051244-rebuff-morphine-9808@gregkh> (raw)
In-Reply-To: <20250512063912.3331082-1-guan.wang.jy@renesas.com>

On Mon, May 12, 2025 at 02:39:13PM +0800, Guan Wang wrote:
> From: Guan Wang <guan.wang.jy@gmail.com>
> 
> Hello,
> 
> Using Linux version 6.15.0-rc5-00032, I encountered an issue where the xHCI controller enters an
> infinite loop while attempting to recover a USB endpoint. This causes the xHCI driver to get stuck,
> and no USB transfers can proceed.
> 
> This issue appears to only occur with full-speed bulk devices such as USB serial adapters(e.g.,
> USB-Serial or CDC-ACM class). I've reproduced it using CH340 and CP2102 USB serial devices.
> 
> **Steps to reproduce:**
> 1. Attach the device.
> 2. Start continuous data transfer (e.g., `cat /dev/ttyUSB0`).
> 3. Induce transfer errors via:
>    - EMI interference
>    - Sudden temperature changes
>    - Long USB cables
>    - Briefly shorting DP/DM lines to simulate a transaction error
> 
> After this, the xHCI controller enters an infinite reset loop on the affected endpoint. "Transfer error"
> messages continuously appear in the logs, creating a log storm. The issue seems to improve or disappear
> when an external high-speed USB hub is inserted between the host and device.
> 
> Do you have any comments or suggestions? The log is shown below:
> 
> 
> **USB emulation dmesg**
> 
> [   41.109377] usb 3-1: new full-speed USB device number 2 using xhci-renesas-hcd
> [   41.277651] xhci-renesas-hcd ee000000.usb: add ep 0x82, slot id 1, new drop flags = 0x0, new add flags = 0x21
> [   41.277676] xhci-renesas-hcd ee000000.usb: add ep 0x2, slot id 1, new drop flags = 0x0, new add flags = 0x31
> [   41.277697] xhci-renesas-hcd ee000000.usb: add ep 0x81, slot id 1, new drop flags = 0x0, new add flags = 0x39

Does this happen on other xhci controllers as well?  Or just the Renesas
chip?

thanks,

greg k-h

  reply	other threads:[~2025-05-12  7:15 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-12  6:39 [ISSUE REPORT] xHCI infinite endpoint reset loop on full-speed after transfer error Guan Wang
2025-05-12  7:15 ` Greg KH [this message]
2025-05-12  8:19 ` Michał Pecio
2025-05-16  8:44   ` Michał Pecio

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=2025051244-rebuff-morphine-9808@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=guan.wang.jy@gmail.com \
    --cc=guan.wang.jy@renesas.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@linux.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.