linux/drivers/usb
Mathias Nyman 85ec2ee3bc xhci: always resume roothubs if xHC was reset during resume
commit 79989bd4ab upstream.

Usb device connect may not be detected after runtime resume if
xHC is reset during resume.

In runtime resume cases xhci_resume() will only resume roothubs if there
are pending port events. If the xHC host is reset during runtime resume
due to a Save/Restore Error (SRE) then these pending port events won't be
detected as PORTSC change bits are not immediately set by host after reset.

Unconditionally resume roothubs if xHC is reset during resume to ensure
device connections are detected.

Also return early with error code if starting xHC fails after reset.

Issue was debugged and a similar solution suggested by Remi Pommarel.
Using this instead as it simplifies future refactoring.

Reported-by: Remi Pommarel <repk@triplefau.lt>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218987
Suggested-by: Remi Pommarel <repk@triplefau.lt>
Tested-by: Remi Pommarel <repk@triplefau.lt>
Cc: stable@vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20240627145523.1453155-2-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-07-18 13:18:39 +02:00
..
atm usb: atm: cxacru: fix endpoint checking in cxacru_bind() 2024-07-05 09:31:55 +02:00
c67x00 USB: c67x00: remove unnecessary check of res 2022-05-12 11:36:46 +02:00
cdns3 usb: cdns3: fix memory double free when handle zero packet 2024-03-01 13:26:34 +01:00
chipidea usb: chipidea: wait controller resume finished for wakeup irq 2024-01-25 15:27:40 -08:00
class USB: class: cdc-wdm: Fix CPU lockup caused by excessive log messages 2024-06-21 14:35:42 +02:00
common usb: ulpi: Fix debugfs directory leak 2024-02-23 09:12:34 +01:00
core USB: core: Fix duplicate endpoint bug by clearing reserved bits in the descriptor 2024-07-18 13:18:39 +02:00
dwc2 usb: dwc2: host: Fix dereference issue in DDMA completion flow. 2024-04-27 17:07:15 +02:00
dwc3 usb: dwc3: core: remove lock of otg mode during gadget suspend/resume to avoid deadlock 2024-07-05 09:31:55 +02:00
early usb: early: xhci-dbc: Fix a potential out-of-bound memory access 2023-03-10 09:33:35 +01:00
gadget usb: gadget: configfs: Prevent OOB read/write in usb_string_copy() 2024-07-18 13:18:39 +02:00
host xhci: always resume roothubs if xHC was reset during resume 2024-07-18 13:18:39 +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: uss720: check for incompatible versions of the Belkin F5U002 2024-06-27 13:46:17 +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: da8xx: fix a resource leak in probe() 2024-07-05 09:31:55 +02:00
phy Revert "usb: phy: generic: Get the vbus supply" 2024-04-03 15:19:50 +02:00
renesas_usbhs usb: renesas: Fix refcount leak bug 2022-06-21 16:39:03 +02:00
roles usb: roles: don't get/set_role() when usb_role_switch is unregistered 2024-03-01 13:26:34 +01:00
serial USB: serial: mos7840: fix crash on resume 2024-07-18 13:18:39 +02:00
storage usb-storage: alauda: Check whether the media is initialized 2024-06-21 14:36:00 +02:00
typec usb: ucsi: stm32: fix command completion handling 2024-07-05 09:31:55 +02:00
usbip USB: usbip: fix stub_dev hub disconnect 2023-11-20 11:52:10 +01: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