]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
Revert "ACPI / resources: Use AE_CTRL_TERMINATE to terminate resources walks"
authorDaniel Scally <djrscally@gmail.com>
Sat, 5 Dec 2020 17:04:03 +0000 (17:04 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 29 Dec 2020 12:47:05 +0000 (13:47 +0100)
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>
drivers/acpi/resource.c

index d85e010ee2cced7b840ebe59fc41a4830bef74e4..39ab333910dd45616c13d3e4d161f50100700e1f 100644 (file)
@@ -548,7 +548,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;
                }