aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/bios32.c
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2012-03-10 09:21:06 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2012-05-16 10:24:12 -0400
commit90cf2418f5c45192bac1ac57af62f61dbac92886 (patch)
tree6c59ff9e0c7e12e16eb4657318074cd00797036e /arch/arm/kernel/bios32.c
parent43ba990bb7bf741f4b2f405b35dc02823d68a682 (diff)
ARM: PCI: remove per-pci_hw list of buses
No one uses the per-hw list of buses, so get rid of this. Instead, build the list locally. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/bios32.c')
-rw-r--r--arch/arm/kernel/bios32.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index 00a506f13f70..25552508c3fd 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -423,7 +423,7 @@ static int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
423 return irq; 423 return irq;
424} 424}
425 425
426static void __init pcibios_init_hw(struct hw_pci *hw) 426static void __init pcibios_init_hw(struct hw_pci *hw, struct list_head *head)
427{ 427{
428 struct pci_sys_data *sys = NULL; 428 struct pci_sys_data *sys = NULL;
429 int ret; 429 int ret;
@@ -463,7 +463,7 @@ static void __init pcibios_init_hw(struct hw_pci *hw)
463 463
464 busnr = sys->bus->subordinate + 1; 464 busnr = sys->bus->subordinate + 1;
465 465
466 list_add(&sys->node, &hw->buses); 466 list_add(&sys->node, head);
467 } else { 467 } else {
468 kfree(sys); 468 kfree(sys);
469 if (ret < 0) 469 if (ret < 0)
@@ -475,19 +475,18 @@ static void __init pcibios_init_hw(struct hw_pci *hw)
475void __init pci_common_init(struct hw_pci *hw) 475void __init pci_common_init(struct hw_pci *hw)
476{ 476{
477 struct pci_sys_data *sys; 477 struct pci_sys_data *sys;
478 478 LIST_HEAD(head);
479 INIT_LIST_HEAD(&hw->buses);
480 479
481 pci_add_flags(PCI_REASSIGN_ALL_RSRC); 480 pci_add_flags(PCI_REASSIGN_ALL_RSRC);
482 if (hw->preinit) 481 if (hw->preinit)
483 hw->preinit(); 482 hw->preinit();
484 pcibios_init_hw(hw); 483 pcibios_init_hw(hw, &head);
485 if (hw->postinit) 484 if (hw->postinit)
486 hw->postinit(); 485 hw->postinit();
487 486
488 pci_fixup_irqs(pcibios_swizzle, pcibios_map_irq); 487 pci_fixup_irqs(pcibios_swizzle, pcibios_map_irq);
489 488
490 list_for_each_entry(sys, &hw->buses, node) { 489 list_for_each_entry(sys, &head, node) {
491 struct pci_bus *bus = sys->bus; 490 struct pci_bus *bus = sys->bus;
492 491
493 if (!pci_has_flag(PCI_PROBE_ONLY)) { 492 if (!pci_has_flag(PCI_PROBE_ONLY)) {