PCI/ACPI: Use acpi_driver_data() rather than searching acpi_pci_roots
This patch changes the implementation of acpi_pci_find_root(). We can access acpi_pci_root without scanning acpi_pci_roots list. If hostbridge hotplug is supported, acpi_pci_roots list will be protected by mutex. We should not access acpi_pci_roots list if preventable to lessen deadlock risk. Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:

committed by
Bjorn Helgaas

parent
6507e6ebeb
commit
cd4faf9c34
@@ -270,12 +270,15 @@ static acpi_status acpi_pci_osc_support(struct acpi_pci_root *root, u32 flags)
|
|||||||
struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
|
struct acpi_pci_root *acpi_pci_find_root(acpi_handle handle)
|
||||||
{
|
{
|
||||||
struct acpi_pci_root *root;
|
struct acpi_pci_root *root;
|
||||||
|
struct acpi_device *device;
|
||||||
|
|
||||||
list_for_each_entry(root, &acpi_pci_roots, node) {
|
if (acpi_bus_get_device(handle, &device) ||
|
||||||
if (root->device->handle == handle)
|
acpi_match_device_ids(device, root_device_ids))
|
||||||
return root;
|
return NULL;
|
||||||
}
|
|
||||||
return NULL;
|
root = acpi_driver_data(device);
|
||||||
|
|
||||||
|
return root;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(acpi_pci_find_root);
|
EXPORT_SYMBOL_GPL(acpi_pci_find_root);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user