From: Daniel Scally Date: Sat, 5 Dec 2020 17:04:03 +0000 (+0000) Subject: Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks" X-Git-Tag: v5.11-rc1~150^2~2^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12fc4dad94dfac25599f31257aac181c691ca96f;p=thirdparty%2Flinux.git Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks" This reverts commit 8a66790b7850a6669129af078768a1d42076a0ef. Switching this function to AE_CTRL_TERMINATE broke the documented behaviour of acpi_dev_get_resources() - AE_CTRL_TERMINATE does not, in fact, terminate the resource walk because acpi_walk_resource_buffer() ignores it (specifically converting it to AE_OK), referring to that value as "an OK termination by the user function". This means that acpi_dev_get_resources() does not abort processing when the preproc function returns a negative value. Signed-off-by: Daniel Scally Cc: 3.10+ # 3.10+ Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c index ad04824ca3baa..f2f5f1dc7c61d 100644 --- a/drivers/acpi/resource.c +++ b/drivers/acpi/resource.c @@ -541,7 +541,7 @@ static acpi_status acpi_dev_process_resource(struct acpi_resource *ares, ret = c->preproc(ares, c->preproc_data); if (ret < 0) { c->error = ret; - return AE_CTRL_TERMINATE; + return AE_ABORT_METHOD; } else if (ret > 0) { return AE_OK; }