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>
This commit is contained in:
Benjamin Herrenschmidt 2019-06-15 10:23:58 +10:00 committed by Bjorn Helgaas
parent a78cf9657b
commit 7ac0d094fb
1 changed files with 5 additions and 0 deletions

View File

@ -1684,10 +1684,15 @@ static enum enable_type pci_realloc_detect(struct pci_bus *bus,
enum enable_type enable_local) enum enable_type enable_local)
{ {
bool unassigned = false; bool unassigned = false;
struct pci_host_bridge *host;
if (enable_local != undefined) if (enable_local != undefined)
return enable_local; return enable_local;
host = pci_find_host_bridge(bus);
if (host->preserve_config)
return auto_disabled;
pci_walk_bus(bus, iov_resources_unassigned, &unassigned); pci_walk_bus(bus, iov_resources_unassigned, &unassigned);
if (unassigned) if (unassigned)
return auto_enabled; return auto_enabled;