diff options
| author | Mika Westerberg <[email protected]> | 2020-11-25 09:07:32 +0000 |
|---|---|---|
| committer | Bjorn Helgaas <[email protected]> | 2020-12-04 22:59:10 +0000 |
| commit | 9c2cc571f92500d2d0f4e70466c90ee8b2b440e6 (patch) | |
| tree | 78c6510abfdbd7c01acc6ee8195aa04248e90924 /fs/proc/array.c | |
| parent | PCI/PM: Rename pci_wakeup_bus() to pci_resume_bus() (diff) | |
| download | kernel-9c2cc571f92500d2d0f4e70466c90ee8b2b440e6.tar.gz kernel-9c2cc571f92500d2d0f4e70466c90ee8b2b440e6.zip | |
PCI/PM: Do not generate wakeup event when runtime resuming device
When a PCI bridge is runtime resumed from D3cold, we resume any downstream
devices as well. Previously, we also generated a wakeup event for each
device even though this is not a wakeup signal coming from the hardware.
Normally this does not cause problems but when combined with
/sys/power/wakeup_count like using the steps below:
# count=$(cat /sys/power/wakeup_count)
# echo $count > /sys/power/wakeup_count
# echo mem > /sys/power/state
The system suspend cycle might fail at this point if a PCI bridge that was
runtime suspended (D3cold) was runtime resumed for any reason. The runtime
resume calls pci_resume_bus(), which generates a wakeup event and increases
wakeup_count.
Since this is not a real wakeup event, remove the call to
pci_wakeup_event() from pci_resume_one().
[bhelgaas: reorder, commit log]
Link: https://lore.kernel.org/r/[email protected]
Reported-by: Utkarsh Patel <[email protected]>
Signed-off-by: Mika Westerberg <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Reviewed-by: Rafael J. Wysocki <[email protected]>
Diffstat (limited to 'fs/proc/array.c')
0 files changed, 0 insertions, 0 deletions
