ACPI: glue: Use acpi_device_adr() in acpi_find_child_device()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 27 Oct 2021 16:59:06 +0000 (18:59 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 28 Oct 2021 14:53:24 +0000 (16:53 +0200)
Instead of evaluating _ADR in acpi_find_child_device(), use the
observation that it has already been evaluated and the value returned
by it has been stored in the pnp.type.bus_address field of the ACPI
device object at hand.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/glue.c

index 17ec6e5..ef10480 100644 (file)
@@ -113,13 +113,10 @@ struct acpi_device *acpi_find_child_device(struct acpi_device *parent,
                return NULL;
 
        list_for_each_entry(adev, &parent->children, node) {
-               unsigned long long addr;
-               acpi_status status;
+               acpi_bus_address addr = acpi_device_adr(adev);
                int score;
 
-               status = acpi_evaluate_integer(adev->handle, METHOD_NAME__ADR,
-                                              NULL, &addr);
-               if (ACPI_FAILURE(status) || addr != address)
+               if (!adev->pnp.type.bus_address || addr != address)
                        continue;
 
                if (!ret) {