linux/drivers/usb
Ziyi Guo 15536f6c15 usb: image: mdc800: kill download URB on timeout
commit 1be3b77de4 upstream.

mdc800_device_read() submits download_urb and waits for completion.
If the timeout fires and the device has not responded, the function
returns without killing the URB, leaving it active.

A subsequent read() resubmits the same URB while it is still
in-flight, triggering the WARN in usb_submit_urb():

  "URB submitted while active"

Check the return value of wait_event_timeout() and kill the URB if
it indicates timeout, ensuring the URB is complete before its status
is inspected or the URB is resubmitted.

Similar to
- commit 372c931319 ("USB: yurex: fix control-URB timeout handling")
- commit b98d5000c5 ("media: rc: iguanair: handle timeouts")

Signed-off-by: Ziyi Guo <n7l8m4@u.northwestern.edu>
Cc: stable <stable@kernel.org>
Link: https://patch.msgid.link/20260209151937.2247202-1-n7l8m4@u.northwestern.edu
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2026-04-18 10:33:14 +02:00
..
atm usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init() 2025-08-28 16:24:27 +02:00
c67x00 usb/c67x00: Replace tasklet with work 2021-01-26 18:36:37 +01:00
cdns3 usb: cdns3: fix role switching during resume 2026-04-18 10:33:07 +02:00
chipidea usb: chipidea: add USB PHY event 2025-08-28 16:24:05 +02:00
class usb: class: cdc-wdm: fix reordering issue in read code path 2026-04-18 10:33:14 +02:00
common usb: common: usb-conn-gpio: use a unique name for usb connector device 2025-07-10 15:57:33 +02:00
core USB: core: Limit the length of unkillable synchronous timeouts 2026-04-18 10:33:14 +02:00
dwc2 usb: dwc2: fix resume failure if dr_mode is host 2026-03-04 07:20:33 -05:00
dwc3 usb: dwc3: Check for USB4 IP_NAME 2026-02-06 16:41:48 +01:00
early usb: early: xhci-dbc: Fix early_ioremap leak 2025-08-28 16:24:06 +02:00
gadget usb: gadget: tegra-xudc: Add handling for BLCG_COREPLL_PWRDN 2026-03-04 07:20:31 -05:00
host usb: xhci: Fix memory leak in xhci_disable_slot() 2026-04-18 10:33:13 +02:00
image usb: image: mdc800: kill download URB on timeout 2026-04-18 10:33:14 +02:00
isp1760 usb: isp1760: Fix out-of-bounds array access 2022-06-09 10:22:27 +02:00
misc usb: misc: uss720: properly clean up reference in uss720_probe() 2026-04-18 10:33:13 +02:00
mon usb: mon: Increase BUFF_MAX to 64 MiB to support multi-MB URBs 2025-12-07 06:09:22 +09:00
mtu3 usb: mtu3: fix kernel panic at qmu transfer done irq handler 2023-05-11 23:00:33 +09:00
musb usb: musb: omap2430: fix device leak at unbind 2025-08-28 16:24:32 +02:00
phy usb: phy: isp1301: fix non-OF device reference imbalance 2026-01-19 13:09:50 +01:00
renesas_usbhs usb: renesas_usbhs: fix use-after-free in ISR during device removal 2026-04-18 10:33:14 +02:00
roles usb: roles: set switch registered flag early on 2025-03-13 12:50:37 +01:00
serial USB: serial: option: add Telit FN920C04 RNDIS compositions 2026-02-19 16:21:47 +01:00
storage usb: usb-storage: Maintain minimal modifications to the bcdDevice range. 2026-01-19 13:09:50 +01:00
typec usb: typec: ucsi: Handle incorrect num_connectors capability 2026-01-19 13:09:48 +01:00
usbip usbip: Fix locking bug in RT-enabled kernels 2026-01-19 13:09:47 +01:00
Kconfig usb: remove reference to deleted config STB03xxx 2021-08-18 15:32:19 +02:00
Makefile usb: host: remove line for obsolete config USB_HWA_HCD 2021-08-18 15:32:19 +02:00
usb-skeleton.c USB: usb-skeleton: drop redundant in-urb check 2019-10-10 12:41:19 +02:00