diff options
author | Paul Burton <paul.burton@imgtec.com> | 2016-10-05 18:18:07 +0100 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2016-10-06 17:56:13 +0200 |
commit | 23dac14d058fcd7cb2b4e6389139ca065855afe7 (patch) | |
tree | 24c6ac358767d802528bc7de3535cdd4e2964be6 /arch/mips | |
parent | d05c513069f15be5de766026a4192998688ffff1 (diff) |
MIPS: PCI: Use struct list_head lists
Rather than open-coding a linked list implementation, make use of the
one in linux/list.h.
Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14340/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/include/asm/pci.h | 3 | ||||
-rw-r--r-- | arch/mips/pci/pci.c | 9 |
2 files changed, 6 insertions, 6 deletions
diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h index 9b63cd41213d..547e113ac0fe 100644 --- a/arch/mips/include/asm/pci.h +++ b/arch/mips/include/asm/pci.h @@ -17,6 +17,7 @@ */ #include <linux/ioport.h> +#include <linux/list.h> #include <linux/of.h> /* @@ -25,7 +26,7 @@ * single controller supporting multiple channels. */ struct pci_controller { - struct pci_controller *next; + struct list_head list; struct pci_bus *bus; struct device_node *of_node; diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c index b4c02f29663e..644ae9696edd 100644 --- a/arch/mips/pci/pci.c +++ b/arch/mips/pci/pci.c @@ -28,8 +28,7 @@ /* * The PCI controller list. */ - -static struct pci_controller *hose_head, **hose_tail = &hose_head; +static LIST_HEAD(controllers); unsigned long PCIBIOS_MIN_IO; unsigned long PCIBIOS_MIN_MEM; @@ -193,8 +192,8 @@ void register_pci_controller(struct pci_controller *hose) goto out; } - *hose_tail = hose; - hose_tail = &hose->next; + INIT_LIST_HEAD(&hose->list); + list_add(&hose->list, &controllers); /* * Do not panic here but later - this might happen before console init. @@ -248,7 +247,7 @@ static int __init pcibios_init(void) pcibios_set_cache_line_size(); /* Scan all of the recorded PCI controllers. */ - for (hose = hose_head; hose; hose = hose->next) + list_for_each_entry(hose, &controllers, list) pcibios_scanbus(hose); pci_fixup_irqs(pci_common_swizzle, pcibios_map_irq); |