arm64: PCI: Allow resource reallocation if necessary
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sat, 15 Jun 2019 00:23:56 +0000 (10:23 +1000)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 21 Jun 2019 23:11:54 +0000 (18:11 -0500)
Call pci_assign_unassigned_root_bus_resources() instead of the simpler:

  pci_bus_size_bridges(bus);
  pci_bus_assign_resources(bus);

pci_assign_unassigned_root_bus_resources() calls:

  __pci_bus_size_bridges(bus, add_list);
  __pci_bus_assign_resources(bus, add_list, &fail_head);

so this should be equivalent as long as we're able to assign everything.
If we were unable to assign something, previously we did nothing and left
it unassigned, but after this patch, we will attempt to do some
reallocation.

Once we start honoring FW resource allocations, this will bring up the
"reallocation" feature which can help making room for SR-IOV when
necessary.

Link: https://lore.kernel.org/r/20190615002359.29577-1-benh@kernel.crashing.org
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
arch/arm64/kernel/pci.c

index bb85e2f4603f88d527a97da32c6e29c662053a89..1419b1b4e9b9a1c41eb3d9020ffb4c358051b640 100644 (file)
@@ -193,8 +193,7 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
        if (!bus)
                return NULL;
 
-       pci_bus_size_bridges(bus);
-       pci_bus_assign_resources(bus);
+       pci_assign_unassigned_root_bus_resources(bus);
 
        list_for_each_entry(child, &bus->children, node)
                pcie_bus_configure_settings(child);