Commit f7ac356d authored by Yinghai Lu's avatar Yinghai Lu Committed by Bjorn Helgaas

x86/PCI: Factor out pcibios_allocate_bridge_resources()

Thus pcibios_allocate_bus_resources() could more simple and clean.
Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
parent d1c3ed66
...@@ -193,34 +193,36 @@ EXPORT_SYMBOL(pcibios_align_resource); ...@@ -193,34 +193,36 @@ EXPORT_SYMBOL(pcibios_align_resource);
* as well. * as well.
*/ */
static void __init pcibios_allocate_bus_resources(struct list_head *bus_list) static void __init pcibios_allocate_bridge_resources(struct pci_dev *dev)
{ {
struct pci_bus *bus;
struct pci_dev *dev;
int idx; int idx;
struct resource *r; struct resource *r;
for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
r = &dev->resource[idx];
if (!r->flags)
continue;
if (!r->start || pci_claim_resource(dev, idx) < 0) {
/*
* Something is wrong with the region.
* Invalidate the resource to prevent
* child resource allocations in this
* range.
*/
r->start = r->end = 0;
r->flags = 0;
}
}
}
static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
{
struct pci_bus *bus;
/* Depth-First Search on bus tree */ /* Depth-First Search on bus tree */
list_for_each_entry(bus, bus_list, node) { list_for_each_entry(bus, bus_list, node) {
if ((dev = bus->self)) { if (bus->self)
for (idx = PCI_BRIDGE_RESOURCES; pcibios_allocate_bridge_resources(bus->self);
idx < PCI_NUM_RESOURCES; idx++) {
r = &dev->resource[idx];
if (!r->flags)
continue;
if (!r->start ||
pci_claim_resource(dev, idx) < 0) {
/*
* Something is wrong with the region.
* Invalidate the resource to prevent
* child resource allocations in this
* range.
*/
r->start = r->end = 0;
r->flags = 0;
}
}
}
pcibios_allocate_bus_resources(&bus->children); pcibios_allocate_bus_resources(&bus->children);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment