diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c index a394ebdc258c0..a3e1b5d127f1e 100644 --- a/drivers/pci/pci-driver.c +++ b/drivers/pci/pci-driver.c @@ -853,6 +853,9 @@ static int pci_pm_resume(struct device *dev) const struct dev_pm_ops *pm = dev->driver ? dev->driver->pm : NULL; int error = 0; + if (pci_dev->no_d3hot) + goto skip_pci_pm_restore; + /* * This is necessary for the suspend error path in which resume is * called without restoring the standard config registers of the device. @@ -860,6 +863,7 @@ static int pci_pm_resume(struct device *dev) if (pci_dev->state_saved) pci_restore_standard_config(pci_dev); +skip_pci_pm_restore: if (pci_has_legacy_pm_support(pci_dev)) return pci_legacy_resume(dev);