Commit 8a20fd52 authored by Luck, Tony's avatar Luck, Tony Committed by Tony Luck

[IA64] pci_acpi_scan_root cleanup

The code walks all the acpi _CRS methods to see how many windows
to allocate.  It then scans them all again to insert_resource()
for each *even if the first scan found that there were none*.

Move the second scan inside the "if (windows)" clause.
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 97653f92
...@@ -324,7 +324,6 @@ pcibios_setup_root_windows(struct pci_bus *bus, struct pci_controller *ctrl) ...@@ -324,7 +324,6 @@ pcibios_setup_root_windows(struct pci_bus *bus, struct pci_controller *ctrl)
struct pci_bus * __devinit struct pci_bus * __devinit
pci_acpi_scan_root(struct acpi_device *device, int domain, int bus) pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
{ {
struct pci_root_info info;
struct pci_controller *controller; struct pci_controller *controller;
unsigned int windows = 0; unsigned int windows = 0;
struct pci_bus *pbus; struct pci_bus *pbus;
...@@ -346,22 +345,24 @@ pci_acpi_scan_root(struct acpi_device *device, int domain, int bus) ...@@ -346,22 +345,24 @@ pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window, acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window,
&windows); &windows);
if (windows) { if (windows) {
struct pci_root_info info;
controller->window = controller->window =
kmalloc_node(sizeof(*controller->window) * windows, kmalloc_node(sizeof(*controller->window) * windows,
GFP_KERNEL, controller->node); GFP_KERNEL, controller->node);
if (!controller->window) if (!controller->window)
goto out2; goto out2;
}
name = kmalloc(16, GFP_KERNEL); name = kmalloc(16, GFP_KERNEL);
if (!name) if (!name)
goto out3; goto out3;
sprintf(name, "PCI Bus %04x:%02x", domain, bus); sprintf(name, "PCI Bus %04x:%02x", domain, bus);
info.controller = controller; info.controller = controller;
info.name = name; info.name = name;
acpi_walk_resources(device->handle, METHOD_NAME__CRS, add_window, acpi_walk_resources(device->handle, METHOD_NAME__CRS,
&info); add_window, &info);
}
/* /*
* See arch/x86/pci/acpi.c. * See arch/x86/pci/acpi.c.
* The desired pci bus might already be scanned in a quirk. We * The desired pci bus might already be scanned in a quirk. We
......
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