patch-2.3.37 linux/arch/i386/kernel/pci-i386.c
Next file: linux/arch/i386/kernel/pci-pc.c
Previous file: linux/arch/i386/kernel/irq.c
Back to the patch index
Back to the overall index
- Lines: 68
- Date:
Thu Jan 6 09:54:06 2000
- Orig file:
v2.3.36/linux/arch/i386/kernel/pci-i386.c
- Orig date:
Tue Jan 4 13:57:16 2000
diff -u --recursive --new-file v2.3.36/linux/arch/i386/kernel/pci-i386.c linux/arch/i386/kernel/pci-i386.c
@@ -12,7 +12,7 @@
* Hannover, Germany
* hm@ix.de
*
- * Copyright 1997--1999 Martin Mares <mj@suse.cz>
+ * Copyright 1997--2000 Martin Mares <mj@suse.cz>
*
* For more information, please consult the following manuals (look at
* http://www.pcisig.com/ for how to get them):
@@ -180,14 +180,17 @@
* as well.
*/
-static void __init pcibios_allocate_bus_resources(struct pci_bus *bus)
+static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
{
+ struct list_head *ln;
+ struct pci_bus *bus;
struct pci_dev *dev;
int idx;
struct resource *r, *pr;
/* Depth-First Search on bus tree */
- while (bus) {
+ for (ln=bus_list->next; ln != bus_list; ln=ln->next) {
+ bus = pci_bus_b(ln);
if ((dev = bus->self)) {
for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
r = &dev->resource[idx];
@@ -198,9 +201,7 @@
printk(KERN_ERR "PCI: Cannot allocate resource region %d of bridge %s\n", idx, dev->slot_name);
}
}
- if (bus->children)
- pcibios_allocate_bus_resources(bus->children);
- bus = bus->next;
+ pcibios_allocate_bus_resources(&bus->children);
}
}
@@ -211,7 +212,7 @@
u16 command;
struct resource *r, *pr;
- for(dev=pci_devices; dev; dev=dev->next) {
+ pci_for_each_dev(dev) {
pci_read_config_word(dev, PCI_COMMAND, &command);
for(idx = 0; idx < 6; idx++) {
r = &dev->resource[idx];
@@ -255,7 +256,7 @@
int idx;
struct resource *r;
- for(dev=pci_devices; dev; dev=dev->next) {
+ pci_for_each_dev(dev) {
int class = dev->class >> 8;
/* Don't touch classless devices and host bridges */
@@ -293,7 +294,8 @@
void __init pcibios_resource_survey(void)
{
- pcibios_allocate_bus_resources(pci_root);
+ DBG("PCI: Allocating resources\n");
+ pcibios_allocate_bus_resources(&pci_root_buses);
pcibios_allocate_resources(0);
pcibios_allocate_resources(1);
pcibios_assign_resources();
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)