Replace iterating over pci_root_buses with the official pci_find_next_bus() call provided by PCI core. This allows to make pci_root_buses private to PCI core.
Signed-off-by: Gerd Bayer <[email protected]> --- arch/x86/pci/i386.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c index e2de26b82940..194d0fa3cec8 100644 --- a/arch/x86/pci/i386.c +++ b/arch/x86/pci/i386.c @@ -357,10 +357,10 @@ static void pcibios_allocate_rom_resources(struct pci_bus *bus) static int __init pcibios_assign_resources(void) { - struct pci_bus *bus; + struct pci_bus *bus = NULL; if (!(pci_probe & PCI_ASSIGN_ROMS)) - list_for_each_entry(bus, &pci_root_buses, node) + while ((bus = pci_find_next_bus(bus)) != NULL) pcibios_allocate_rom_resources(bus); pci_assign_unassigned_resources(); @@ -390,16 +390,18 @@ void pcibios_resource_survey_bus(struct pci_bus *bus) void __init pcibios_resource_survey(void) { - struct pci_bus *bus; + struct pci_bus *bus = NULL; DBG("PCI: Allocating resources\n"); - list_for_each_entry(bus, &pci_root_buses, node) + while ((bus = pci_find_next_bus(bus)) != NULL) pcibios_allocate_bus_resources(bus); - list_for_each_entry(bus, &pci_root_buses, node) + bus = NULL; /* start all over */ + while ((bus = pci_find_next_bus(bus)) != NULL) pcibios_allocate_resources(bus, 0); - list_for_each_entry(bus, &pci_root_buses, node) + bus = NULL; /* start all over */ + while ((bus = pci_find_next_bus(bus)) != NULL) pcibios_allocate_resources(bus, 1); e820__reserve_resources_late(); -- 2.54.0
