===================================================================
@@ -329,19 +329,18 @@ const char *acpi_get_subsystem_id(acpi_h
}
EXPORT_SYMBOL_GPL(acpi_get_subsystem_id);
-acpi_status
-acpi_evaluate_reference(acpi_handle handle,
- acpi_string pathname,
- struct acpi_object_list *arguments,
- struct acpi_handle_list *list)
+bool acpi_evaluate_reference(acpi_handle handle, acpi_string pathname,
+ struct acpi_object_list *arguments,
+ struct acpi_handle_list *list)
{
struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL };
union acpi_object *package;
acpi_status status;
+ bool ret = false;
u32 i;
if (!list)
- return AE_BAD_PARAMETER;
+ return false;
/* Evaluate object. */
@@ -352,42 +351,35 @@ acpi_evaluate_reference(acpi_handle hand
package = buffer.pointer;
if (buffer.length == 0 || !package ||
- package->type != ACPI_TYPE_PACKAGE || !package->package.count) {
- status = AE_BAD_DATA;
+ package->type != ACPI_TYPE_PACKAGE || !package->package.count)
goto err;
- }
list->count = package->package.count;
list->handles = kcalloc(list->count, sizeof(*list->handles), GFP_KERNEL);
- if (!list->handles) {
- status = AE_NO_MEMORY;
+ if (!list->handles)
goto err_clear;
- }
/* Extract package data. */
for (i = 0; i < list->count; i++) {
union acpi_object *element = &(package->package.elements[i]);
- if (element->type != ACPI_TYPE_LOCAL_REFERENCE) {
- status = AE_BAD_DATA;
+ if (element->type != ACPI_TYPE_LOCAL_REFERENCE ||
+ !element->reference.handle)
goto err_free;
- }
- if (!element->reference.handle) {
- status = AE_NULL_ENTRY;
- goto err_free;
- }
/* Get the acpi_handle. */
list->handles[i] = element->reference.handle;
acpi_handle_debug(list->handles[i], "Found in reference list\n");
}
+ ret = true;
+
end:
kfree(buffer.pointer);
- return status;
+ return ret;
err_free:
kfree(list->handles);
===================================================================
@@ -565,16 +565,13 @@ static struct device *acpi_lpss_find_dev
static bool acpi_lpss_dep(struct acpi_device *adev, acpi_handle handle)
{
struct acpi_handle_list dep_devices;
- acpi_status status;
bool ret = false;
int i;
if (!acpi_has_method(adev->handle, "_DEP"))
return false;
- status = acpi_evaluate_reference(adev->handle, "_DEP", NULL,
- &dep_devices);
- if (ACPI_FAILURE(status)) {
+ if (!acpi_evaluate_reference(adev->handle, "_DEP", NULL, &dep_devices)) {
dev_dbg(&adev->dev, "Failed to evaluate _DEP.\n");
return false;
}
===================================================================
@@ -25,11 +25,9 @@ acpi_status
acpi_evaluate_integer(acpi_handle handle,
acpi_string pathname,
struct acpi_object_list *arguments, unsigned long long *data);
-acpi_status
-acpi_evaluate_reference(acpi_handle handle,
- acpi_string pathname,
- struct acpi_object_list *arguments,
- struct acpi_handle_list *list);
+bool acpi_evaluate_reference(acpi_handle handle, acpi_string pathname,
+ struct acpi_object_list *arguments,
+ struct acpi_handle_list *list);
bool acpi_handle_list_equal(struct acpi_handle_list *list1,
struct acpi_handle_list *list2);
void acpi_handle_list_replace(struct acpi_handle_list *dst,
===================================================================
@@ -1984,7 +1984,6 @@ static void acpi_scan_init_hotplug(struc
static u32 acpi_scan_check_dep(acpi_handle handle)
{
struct acpi_handle_list dep_devices;
- acpi_status status;
u32 count;
int i;
@@ -1997,8 +1996,7 @@ static u32 acpi_scan_check_dep(acpi_hand
if (!acpi_has_method(handle, "_DEP") || !acpi_has_method(handle, "_HID"))
return 0;
- status = acpi_evaluate_reference(handle, "_DEP", NULL, &dep_devices);
- if (ACPI_FAILURE(status)) {
+ if (!acpi_evaluate_reference(handle, "_DEP", NULL, &dep_devices)) {
acpi_handle_debug(handle, "Failed to evaluate _DEP.\n");
return 0;
}
@@ -2007,6 +2005,7 @@ static u32 acpi_scan_check_dep(acpi_hand
struct acpi_device_info *info;
struct acpi_dep_data *dep;
bool skip, honor_dep;
+ acpi_status status;
status = acpi_get_object_info(dep_devices.handles[i], &info);
if (ACPI_FAILURE(status)) {
===================================================================
@@ -244,7 +244,6 @@ static bool update_trip_devices(struct a
{
struct acpi_handle_list devices = { 0 };
char method[] = "_PSL";
- acpi_status status;
if (index != ACPI_THERMAL_TRIP_PASSIVE) {
method[1] = 'A';
@@ -252,8 +251,7 @@ static bool update_trip_devices(struct a
method[3] = '0' + index;
}
- status = acpi_evaluate_reference(tz->device->handle, method, NULL, &devices);
- if (ACPI_FAILURE(status)) {
+ if (!acpi_evaluate_reference(tz->device->handle, method, NULL, &devices)) {
acpi_handle_info(tz->device->handle, "%s evaluation failure\n", method);
return false;
}
===================================================================
@@ -740,15 +740,13 @@ static bool is_san_consumer(struct platf
{
struct acpi_handle_list dep_devices;
acpi_handle supplier = ACPI_HANDLE(&pdev->dev);
- acpi_status status;
bool ret = false;
int i;
if (!acpi_has_method(handle, "_DEP"))
return false;
- status = acpi_evaluate_reference(handle, "_DEP", NULL, &dep_devices);
- if (ACPI_FAILURE(status)) {
+ if (!acpi_evaluate_reference(handle, "_DEP", NULL, &dep_devices)) {
san_consumer_dbg(&pdev->dev, handle, "failed to evaluate _DEP\n");
return false;
}