diff options
| author | Mathias Nyman <[email protected]> | 2025-06-27 16:43:48 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <[email protected]> | 2025-06-30 13:36:00 +0000 |
| commit | 9bd9c8026341f75f25c53104eb7e656e357ca1a2 (patch) | |
| tree | a60c001887229705d5c06e817f37bddd9a996ac8 /drivers/fpga/altera-fpga2sdram.c | |
| parent | xhci: dbc: Flush queued requests before stopping dbc (diff) | |
| download | kernel-9bd9c8026341f75f25c53104eb7e656e357ca1a2.tar.gz kernel-9bd9c8026341f75f25c53104eb7e656e357ca1a2.zip | |
usb: hub: Fix flushing of delayed work used for post resume purposes
Delayed work that prevents USB3 hubs from runtime-suspending too early
needed to be flushed in hub_quiesce() to resolve issues detected on
QC SC8280XP CRD board during suspend resume testing.
This flushing did however trigger new issues on Raspberry Pi 3B+, which
doesn't have USB3 ports, and doesn't queue any post resume delayed work.
The flushed 'hub->init_work' item is used for several purposes, and
is originally initialized with a 'NULL' work function. The work function
is also changed on the fly, which may contribute to the issue.
Solve this by creating a dedicated delayed work item for post resume work,
and flush that delayed work in hub_quiesce()
Cc: stable <[email protected]>
Fixes: a49e1e2e785f ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime pm")
Reported-by: Mark Brown <[email protected]>
Closes: https://lore.kernel.org/linux-usb/[email protected]
Signed-off-by: Mathias Nyman <[email protected]>
Tested-by: Konrad Dybcio <[email protected]> # SC8280XP CRD
Tested-by: Mark Brown <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'drivers/fpga/altera-fpga2sdram.c')
0 files changed, 0 insertions, 0 deletions
