diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index f05827ce47f893c8c0485b3e1eb54401cd9e75df..9cae66c8142e4521d2b669c382ef8fef340b5426 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -2004,6 +2004,13 @@ static void pci_pme_list_scan(struct work_struct *work) */ if (bridge && bridge->current_state != PCI_D0) continue; + /* + * If the device is in D3cold it should not be + * polled either. + */ + if (pme_dev->dev->current_state == PCI_D3cold) + continue; + pci_pme_wakeup(pme_dev->dev, NULL); } else { list_del(&pme_dev->list);