diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 3e981329c7a9..2e54269f5458 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -1982,6 +1982,10 @@ bool pci_dev_run_wake(struct pci_dev *dev) if (!dev->pme_support) return false; + /* PME-capable in principle, but not from the intended sleep state */ + if (!pci_pme_capable(dev, pci_target_state(dev))) + return false; + while (bus->parent) { struct pci_dev *bridge = bus->self;