On 23 April 2017 at 02:45, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Mon, Apr 10, 2017 at 06:29:27PM +0100, Ard Biesheuvel wrote: >> /* >> @@ -208,8 +208,8 @@ 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); >> + pci_bus_claim_resources(bus); >> >> list_for_each_entry(child, &bus->children, node) >> pcie_bus_configure_settings(child); >> > > looks like those two lines are reversed. you should use: > pcibios_resource_survey_bus(bus); > pci_assign_unassigned_root_bus_resources(bus); > > please check x86 pcibios_resource_survey_bus() definition in > arch/x86/pci/i386.c > > but pci_bus_claim_resources() should work too. > Thanks Yinghai pcibios_resource_survey_bus() is actually an empty function on arm64, but I guess that is where logic should go that checks the state of the BARs before trying to claim anything?