Re: [PATCH 1/4] arm64: pci: acpi: Use pci_assign_unassigned_root_bus_resources()

Benjamin Herrenschmidt
2019-06-20T22:56:05Z

On Thu, 2019-06-20 at 18:13 +0100, Lorenzo Pieralisi wrote:
> On Sat, Jun 15, 2019 at 10:23:56AM +1000, Benjamin Herrenschmidt wrote:
> > Instead of the simpler
> >
> > pci_bus_size_bridges(bus);
> > pci_bus_assign_resources(bus);
> >
> > Use pci_assign_unassigned_root_bus_resources(). This should have no effect
> > as long as we are reassigning everything. Once we start honoring FW
> > resource allocations, this will bring up the "reallocation" feature
> > which can help making room for SR-IOV when necessary.
>
> I would like to add more details on why we want to make this change,
> I will update the log when we merge it, it is a bit too late for v5.3,
> even if in theory no functional change is intended.

Ok. The why is that a subsequent patch will turn the code into

if (claim)
claim()
pci_assign_unassigned*

And I wanted the patch replacing the existing 2 calls with the above
separate and bisectable in case we missed some odd effect of the
change.

Cheers,
Ben.

>
> > Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > ---
> > arch/arm64/kernel/pci.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c
> > index bb85e2f4603f..1419b1b4e9b9 100644
> > --- a/arch/arm64/kernel/pci.c
> > +++ b/arch/arm64/kernel/pci.c
> > @@ -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);
>
> These hunks should be identical, minus the additional resource size
> handling and realloc policy (which are *missing* features in current
> code). We must document this change in the log.
>
> Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
>
> > list_for_each_entry(child, &bus->children, node)
> > pcie_bus_configure_settings(child);
> > --
> > 2.17.1
> >