PCI: Restore ACS configuration as part of pci_restore_state()
authorAlexander Duyck <alexander.h.duyck@redhat.com>
Tue, 7 Jul 2015 19:24:35 +0000 (12:24 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 21 Jul 2015 15:40:56 +0000 (10:40 -0500)
Previously we did not restore ACS state after a PCIe reset.  This meant
that we could not reassign interfaces after a system suspend because the
D0->D3 transition disabled ACS, and we didn't restore it when going back to
D0.

Restore ACS configuration in pci_restore_state().

[bhelgaas: changelog]
Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Allen Kay <allen.m.kay@intel.com>
CC: Chris Wright <chris@sous-sol.org>
CC: Alex Williamson <alex.williamson@redhat.com>
drivers/pci/pci.c

index 0008c950452c31e71f8f591354449980893e58f6..9bd9526f33884dca99e5c11d0fa19cd53e7440d8 100644 (file)
@@ -1092,6 +1092,9 @@ void pci_restore_state(struct pci_dev *dev)
 
        pci_restore_pcix_state(dev);
        pci_restore_msi_state(dev);
+
+       /* Restore ACS and IOV configuration state */
+       pci_enable_acs(dev);
        pci_restore_iov_state(dev);
 
        dev->state_saved = false;