]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ARM: PCI: remove per-pci_hw list of buses
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 10 Mar 2012 14:21:06 +0000 (14:21 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 16 May 2012 14:24:12 +0000 (15:24 +0100)
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>
arch/arm/include/asm/mach/pci.h
arch/arm/kernel/bios32.c

index b4b94b4341f64c5b4465e2fb60fd04d44d66b448..26c511fddf8fdc10ceea18e333de4e1320966e9e 100644 (file)
@@ -19,7 +19,6 @@ struct hw_pci {
 #ifdef CONFIG_PCI_DOMAINS
        int             domain;
 #endif
-       struct list_head buses;
        struct pci_ops  *ops;
        int             nr_controllers;
        int             (*setup)(int nr, struct pci_sys_data *);
index 00a506f13f70b9206bf46915f007d96cc976eb34..25552508c3fd3c63930cec55893c41dcbbd72b0d 100644 (file)
@@ -423,7 +423,7 @@ static int pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
        return irq;
 }
 
-static void __init pcibios_init_hw(struct hw_pci *hw)
+static void __init pcibios_init_hw(struct hw_pci *hw, struct list_head *head)
 {
        struct pci_sys_data *sys = NULL;
        int ret;
@@ -463,7 +463,7 @@ static void __init pcibios_init_hw(struct hw_pci *hw)
 
                        busnr = sys->bus->subordinate + 1;
 
-                       list_add(&sys->node, &hw->buses);
+                       list_add(&sys->node, head);
                } else {
                        kfree(sys);
                        if (ret < 0)
@@ -475,19 +475,18 @@ static void __init pcibios_init_hw(struct hw_pci *hw)
 void __init pci_common_init(struct hw_pci *hw)
 {
        struct pci_sys_data *sys;
-
-       INIT_LIST_HEAD(&hw->buses);
+       LIST_HEAD(head);
 
        pci_add_flags(PCI_REASSIGN_ALL_RSRC);
        if (hw->preinit)
                hw->preinit();
-       pcibios_init_hw(hw);
+       pcibios_init_hw(hw, &head);
        if (hw->postinit)
                hw->postinit();
 
        pci_fixup_irqs(pcibios_swizzle, pcibios_map_irq);
 
-       list_for_each_entry(sys, &hw->buses, node) {
+       list_for_each_entry(sys, &head, node) {
                struct pci_bus *bus = sys->bus;
 
                if (!pci_has_flag(PCI_PROBE_ONLY)) {