*/
#include <linux/ioport.h>
+#include <linux/list.h>
#include <linux/of.h>
/*
* 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;
/*
* 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;
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.
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);