Re: [PATCH v3] usb: vhci-hcd: Prevent suspending virtually attached devices
From: Shuah Khan
Date: Wed Sep 24 2025 - 16:40:55 EST
On 9/24/25 11:01, Cristian Ciocaltea wrote:
Hi,
On 9/2/25 3:15 PM, Cristian Ciocaltea wrote:
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: 04679b3489e0 ("Staging: USB/IP: add client driver")
Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx>
---
The USB/IP Virtual Host Controller (VHCI) platform driver is expected to
prevent entering system suspend when at least one remote device is
attached to the virtual USB root hub.
However, in some cases, the detection logic for active USB/IP
connections doesn't seem to work reliably, e.g. when all devices
attached to the virtual hub have been already suspended. This will
normally lead to a broken suspend state, with unrecoverable resume.
The first patch of the series provides a workaround to ensure the
virtually attached devices do not enter suspend. Note this is currently
limited to the client side (vhci_hcd) only, since the server side
(usbip_host) doesn't implement system suspend prevention.
IMPORTANT:
Please note commit aa7a9275ab81 ("PM: sleep: Suspend async parents after
suspending children") from v6.16-rc1 introduced a regression which
breaks the suspend cancellation and hangs the system.
A fix [1] has been already provided, which also landed soon after in
v6.16-rc7 under commit ebd6884167ea ("PM: sleep: Update power.completion
for all devices on errors").
[1] https://lore.kernel.org/all/6191258.lOV4Wx5bFT@xxxxxxxxxxxxx/
---
Changes in v3:
- Moved all driver cleanup patches to a separate series:
https://lore.kernel.org/all/20250902-vhci-hcd-cleanup-v1-0-1d46247cb234@xxxxxxxxxxxxx/
- Replaced FIXME with NOTE in the new comment block, as it refers to a
potential cleanup of redundant code rather than addressing a
functional issue
- Rebased remaining patch onto next-20250902
- Link to v2: https://lore.kernel.org/r/20250726-vhci-hcd-suspend-fix-v2-0-189266dfdfaa@xxxxxxxxxxxxx
Just a kind reminder in case there's still a chance to get this and/or the
cleanup patches queued for v6.18.
Sorry for the delay - it has been crazy few weeks for me.
Acked-by: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>
thanks,
-- Shuah