summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Scally <djrscally@gmail.com>2020-12-05 17:04:03 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-12-29 13:42:42 +0100
commitc30a0bd80e286d89d8dc8d164f8f10343c92c806 (patch)
treefb3daae262f85b73fbecc2f17c0e725f20837af9
parenta27ceb6187526615f192ec8cc449e0aa3387a4b4 (diff)
downloadlinux-stable-c30a0bd80e286d89d8dc8d164f8f10343c92c806.tar.gz
linux-stable-c30a0bd80e286d89d8dc8d164f8f10343c92c806.tar.bz2
linux-stable-c30a0bd80e286d89d8dc8d164f8f10343c92c806.zip
Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks"
commit 12fc4dad94dfac25599f31257aac181c691ca96f upstream. 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 <djrscally@gmail.com> Cc: 3.10+ <stable@vger.kernel.org> # 3.10+ Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/acpi/resource.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c
index 627f8fbb5e9a..e6003d2baa45 100644
--- a/drivers/acpi/resource.c
+++ b/drivers/acpi/resource.c
@@ -506,7 +506,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;
}