[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: Tony Luck <tony.luck@intel.com>
This commit is contained in:
Родитель
97653f92c0
Коммит
8a20fd52c6
|
@ -324,7 +324,6 @@ pcibios_setup_root_windows(struct pci_bus *bus, struct pci_controller *ctrl)
|
|||
struct pci_bus * __devinit
|
||||
pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
|
||||
{
|
||||
struct pci_root_info info;
|
||||
struct pci_controller *controller;
|
||||
unsigned int windows = 0;
|
||||
struct pci_bus *pbus;
|
||||
|
@ -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,
|
||||
&windows);
|
||||
if (windows) {
|
||||
struct pci_root_info info;
|
||||
|
||||
controller->window =
|
||||
kmalloc_node(sizeof(*controller->window) * windows,
|
||||
GFP_KERNEL, controller->node);
|
||||
if (!controller->window)
|
||||
goto out2;
|
||||
|
||||
name = kmalloc(16, GFP_KERNEL);
|
||||
if (!name)
|
||||
goto out3;
|
||||
|
||||
sprintf(name, "PCI Bus %04x:%02x", domain, bus);
|
||||
info.controller = controller;
|
||||
info.name = name;
|
||||
acpi_walk_resources(device->handle, METHOD_NAME__CRS,
|
||||
add_window, &info);
|
||||
}
|
||||
|
||||
name = kmalloc(16, GFP_KERNEL);
|
||||
if (!name)
|
||||
goto out3;
|
||||
|
||||
sprintf(name, "PCI Bus %04x:%02x", domain, bus);
|
||||
info.controller = controller;
|
||||
info.name = name;
|
||||
acpi_walk_resources(device->handle, METHOD_NAME__CRS, add_window,
|
||||
&info);
|
||||
/*
|
||||
* See arch/x86/pci/acpi.c.
|
||||
* The desired pci bus might already be scanned in a quirk. We
|
||||
|
|
Загрузка…
Ссылка в новой задаче