diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index 55c853686051..429c0c8ce93d 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c @@ -331,6 +331,9 @@ void pci_bus_add_device(struct pci_dev *dev) struct device_node *dn = dev->dev.of_node; int retval; + /* Save config space for error recoverability */ + pci_save_state(dev); + /* * Can not put in pci_device_add yet because resources * are not assigned yet for some devices. diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 5e5326031eb7..963436edea1c 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -1939,9 +1939,6 @@ static void pci_restore_rebar_state(struct pci_dev *pdev) */ void pci_restore_state(struct pci_dev *dev) { - if (!dev->state_saved) - return; - pci_restore_pcie_state(dev); pci_restore_pasid_state(dev); pci_restore_pri_state(dev);