Merge branch 'acpi-cleanup'
[~shefty/rdma-dev.git] / drivers / acpi / scan.c
index d16a94ef0baf6e1c89ddfd4415572e0fa1f6f554..daee7497efd30137f2dddef2497f9968555d4e26 100644 (file)
@@ -496,9 +496,9 @@ const struct acpi_device_id *acpi_match_device(const struct acpi_device_id *ids,
                                               const struct device *dev)
 {
        struct acpi_device *adev;
+       acpi_handle handle = ACPI_HANDLE(dev);
 
-       if (!ids || !ACPI_HANDLE(dev)
-           || ACPI_FAILURE(acpi_bus_get_device(ACPI_HANDLE(dev), &adev)))
+       if (!ids || !handle || acpi_bus_get_device(handle, &adev))
                return NULL;
 
        return __acpi_match_device(adev, ids);
@@ -1178,7 +1178,10 @@ static void acpi_bus_get_power_flags(struct acpi_device *device)
                        device->power.flags.power_resources)
                device->power.states[ACPI_STATE_D3_COLD].flags.os_accessible = 1;
 
-       acpi_bus_init_power(device);
+       if (acpi_bus_init_power(device)) {
+               acpi_free_power_resources_lists(device);
+               device->flags.power_manageable = 0;
+       }
 }
 
 static void acpi_bus_get_flags(struct acpi_device *device)