linux/drivers/usb/usbip
Cristian Ciocaltea e40b984b6c usb: vhci-hcd: Prevent suspending virtually attached devices
The VHCI platform driver aims to forbid entering system suspend when at
least one of the virtual USB ports are bound to an active USB/IP
connection.

However, in some cases, the detection logic doesn't work reliably, i.e.
when all devices attached to the virtual root hub have been already
suspended, leading to a broken suspend state, with unrecoverable resume.

Ensure the virtually attached devices do not enter suspend by setting
the syscore PM flag.  Note this is currently limited to the client side
only, since the server side doesn't implement system suspend prevention.

Fixes: 04679b3489 ("Staging: USB/IP: add client driver")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
Acked-by: Shuah Khan <skhan@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250902-vhci-hcd-suspend-fix-v3-1-864e4e833559@collabora.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-09-25 18:52:32 +02:00
..
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
stub.h usbip: Implement SG support to vhci-hcd and stub driver 2019-09-03 16:00:38 +02:00
stub_dev.c USB: usbip: fix stub_dev hub disconnect 2023-10-08 07:49:17 +02:00
stub_main.c USB: core: Use device_driver directly in struct usb_driver and usb_device_driver 2024-01-04 16:06:32 +01:00
stub_rx.c usbip: Correct format specifier for seqnum from %d to %u 2025-01-17 12:38:01 +01:00
stub_tx.c usbip: Correct format specifier for seqnum from %d to %u 2025-01-17 12:38:01 +01:00
usbip_common.c Treewide: Stop corrupting socket's task_frag 2022-12-19 17:28:49 -08:00
usbip_common.h kthread: add kthread_stop_put 2023-10-04 10:41:57 -07:00
usbip_event.c usb: Remove redundant 'flush_workqueue()' calls 2021-11-17 14:36:57 +01:00
vhci.h USB: usbip: Remove redundant license text 2017-11-07 15:45:01 +01:00
vhci_hcd.c usb: vhci-hcd: Prevent suspending virtually attached devices 2025-09-25 18:52:32 +02:00
vhci_rx.c usbip: Correct format specifier for seqnum from %d to %u 2025-01-17 12:38:01 +01:00
vhci_sysfs.c usbip: Add USB_SPEED_SUPER_PLUS as valid arg 2024-07-31 10:41:41 +02:00
vhci_tx.c usbip: Fix free of unallocated memory in vhci tx 2019-10-28 17:51:06 +01:00
vudc.h USB: usbip: vudc: Convert to platform remove callback returning void 2023-11-22 12:02:53 +00:00
vudc_dev.c USB: usbip: vudc: Convert to platform remove callback returning void 2023-11-22 12:02:53 +00:00
vudc_main.c usb: Switch back to struct platform_driver::remove() 2024-10-04 15:13:03 +02:00
vudc_rx.c usb/usbip: Fix v_recv_cmd_submit() to use PIPE_BULK define 2022-11-11 10:28:42 +01:00
vudc_sysfs.c sysfs: treewide: switch back to attribute_group::bin_attrs 2025-06-17 10:44:15 +02:00
vudc_transfer.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
vudc_tx.c usbip: Correct format specifier for seqnum from %d to %u 2025-01-17 12:38:01 +01:00