PCI/PM: Clear PCIe PME Status even for legacy power management
authorBjorn Helgaas <bhelgaas@google.com>
Thu, 10 Oct 2019 21:54:36 +0000 (16:54 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Jan 2020 18:48:53 +0000 (19:48 +0100)
commit5611345ef38fb69a7eaeb1d1699799a6251cb374
treecb767b7887181cb247ba226bc10b05371d80ff24
parenta6aafadb9860795aa34ac5324e25b6bb5a6af496
PCI/PM: Clear PCIe PME Status even for legacy power management

commit ec6a75ef8e33fe33f963b916fd902c52a0be33ff upstream.

Previously, pci_pm_resume_noirq() cleared the PME Status bit in the Root
Status register only if the device had no driver or the driver did not
implement legacy power management.  It should clear PME Status regardless
of what sort of power management the driver supports, so do this before
checking for legacy power management.

This affects Root Ports and Root Complex Event Collectors, for which the
usual driver is the PCIe portdrv, which implements new power management, so
this change is just on principle, not to fix any actual defects.

Fixes: a39bd851dccf ("PCI/PM: Clear PCIe PME Status bit in core, not PCIe port driver")
Link: https://lore.kernel.org/r/20191014230016.240912-4-helgaas@kernel.org
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/pci/pci-driver.c