Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8a20fd52 authored by Tony Luck's avatar Tony Luck
Browse files

[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
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -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,12 +345,13 @@ 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)
@@ -360,8 +360,9 @@ pci_acpi_scan_root(struct acpi_device *device, int domain, int bus)
		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);
		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