linux/drivers/usb
Selvarasu Ganesan 5a1a847d84 usb: dwc3: Remove WARN_ON for device endpoint command timeouts
commit 45eae113dc upstream.

This commit addresses a rarely observed endpoint command timeout
which causes kernel panic due to warn when 'panic_on_warn' is enabled
and unnecessary call trace prints when 'panic_on_warn' is disabled.
It is seen during fast software-controlled connect/disconnect testcases.
The following is one such endpoint command timeout that we observed:

1. Connect
   =======
->dwc3_thread_interrupt
 ->dwc3_ep0_interrupt
  ->configfs_composite_setup
   ->composite_setup
    ->usb_ep_queue
     ->dwc3_gadget_ep0_queue
      ->__dwc3_gadget_ep0_queue
       ->__dwc3_ep0_do_control_data
        ->dwc3_send_gadget_ep_cmd

2. Disconnect
   ==========
->dwc3_thread_interrupt
 ->dwc3_gadget_disconnect_interrupt
  ->dwc3_ep0_reset_state
   ->dwc3_ep0_end_control_data
    ->dwc3_send_gadget_ep_cmd

In the issue scenario, in Exynos platforms, we observed that control
transfers for the previous connect have not yet been completed and end
transfer command sent as a part of the disconnect sequence and
processing of USB_ENDPOINT_HALT feature request from the host timeout.
This maybe an expected scenario since the controller is processing EP
commands sent as a part of the previous connect. It maybe better to
remove WARN_ON in all places where device endpoint commands are sent to
avoid unnecessary kernel panic due to warn.

Cc: stable <stable@kernel.org>
Co-developed-by: Akash M <akash.m5@samsung.com>
Signed-off-by: Akash M <akash.m5@samsung.com>
Signed-off-by: Selvarasu Ganesan <selvarasu.g@samsung.com>
Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/20250808125315.1607-1-selvarasu.g@samsung.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-08-28 16:26:15 +02:00
..
atm usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init() 2025-08-28 16:26:05 +02:00
c67x00 USB: c67x00: remove unnecessary check of res 2022-05-12 11:36:46 +02:00
cdns3 usb: cdnsp: Fix issue with CV Bad Descriptor test 2025-07-17 18:32:10 +02:00
chipidea usb: chipidea: add USB PHY event 2025-08-15 12:04:52 +02:00
class cdc-acm: fix race between initial clearing halt and open 2025-08-28 16:26:04 +02:00
common usb: common: usb-conn-gpio: use a unique name for usb connector device 2025-07-06 10:57:55 +02:00
core usb: core: hcd: fix accessing unmapped memory in SINGLE_STEP_SET_FEATURE test 2025-08-28 16:26:14 +02:00
dwc2 usb: dwc2: also exit clock_gating when stopping udc while suspended 2025-07-06 10:57:55 +02:00
dwc3 usb: dwc3: Remove WARN_ON for device endpoint command timeouts 2025-08-28 16:26:15 +02:00
early usb: early: xhci-dbc: Fix early_ioremap leak 2025-08-15 12:04:54 +02:00
gadget usb: gadget: udc: renesas_usb3: fix device leak at unbind 2025-08-28 16:26:05 +02:00
host usb: renesas-xhci: Fix External ROM access timeouts 2025-08-28 16:26:14 +02:00
image usb/image: fix repeated words in comments 2022-07-27 14:33:53 +02:00
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-05-19 18:10:59 +02:00
misc usb: misc: apple-mfi-fastcharge: Make power supply names unique 2025-08-15 12:04:53 +02:00
mon usb: mon: Fix atomicity violation in mon_bin_vma_fault 2024-01-25 15:27:40 -08:00
mtu3 usb: mtu3: fix kernel panic at qmu transfer done irq handler 2023-05-11 23:03:30 +09:00
musb usb: musb: omap2430: fix device leak at unbind 2025-08-28 16:26:11 +02:00
phy usb: phy: mxs: disconnect line when USB charger is attached 2025-08-15 12:04:52 +02:00
renesas_usbhs usb: renesas_usbhs: Reorder clock handling and power management in probe 2025-06-27 11:07:16 +01:00
roles usb: roles: set switch registered flag early on 2025-02-21 13:50:01 +01:00
serial USB: serial: option: add Foxconn T99W709 2025-08-15 12:05:12 +02:00
storage USB: storage: Ignore driver CD mode for Realtek multi-mode Wi-Fi dongles 2025-08-28 16:26:15 +02:00
typec usb: typec: fusb302: cache PD RX state 2025-08-28 16:26:11 +02:00
usbip usbip: Don't submit special requests twice 2024-09-08 07:53:10 +02:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile USB: xen-hcd: Traverse host/ when CONFIG_USB_XEN_HCD is selected 2024-06-21 14:35:43 +02:00
usb-skeleton.c usb: usb-skeleton: Update min() to min_t() 2021-10-05 12:56:48 +02:00