diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2019-06-15 10:23:58 +1000 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2019-06-21 18:11:53 -0500 |
commit | 7ac0d094fbe95bf7cc96b3066a97e1090ddc734a (patch) | |
tree | 3210086341a37002e6bd5cd2a3b054cff71bf67e /drivers | |
parent | a78cf9657ba5426f54aa93a067c10d097944c082 (diff) | |
download | linux-7ac0d094fbe95bf7cc96b3066a97e1090ddc734a.tar.bz2 |
PCI: Don't auto-realloc if we're preserving firmware config
Prevent auto-enabling of bridges reallocation when the FW tells us that the
initial configuration must be preserved for a given host bridge.
Link: https://lore.kernel.org/r/20190615002359.29577-3-benh@kernel.crashing.org
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/setup-bus.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 0cdd5ff389de..d533102b2788 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -1684,10 +1684,15 @@ static enum enable_type pci_realloc_detect(struct pci_bus *bus, enum enable_type enable_local) { bool unassigned = false; + struct pci_host_bridge *host; if (enable_local != undefined) return enable_local; + host = pci_find_host_bridge(bus); + if (host->preserve_config) + return auto_disabled; + pci_walk_bus(bus, iov_resources_unassigned, &unassigned); if (unassigned) return auto_enabled; |