summaryrefslogtreecommitdiff
path: root/libre/linux-libre-hardened/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/linux-libre-hardened/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch')
-rw-r--r--libre/linux-libre-hardened/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch53
1 files changed, 0 insertions, 53 deletions
diff --git a/libre/linux-libre-hardened/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch b/libre/linux-libre-hardened/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch
deleted file mode 100644
index c6929908a..000000000
--- a/libre/linux-libre-hardened/ACPICA-AML-Parser-ignore-control-method-status-in-module-level-code.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From f51d7e02375963169fb1c1148ac3f96d54e97ec4 Mon Sep 17 00:00:00 2001
-From: Erik Schmauss <erik.schmauss@intel.com>
-Date: Sat, 28 Jul 2018 14:49:55 +0200
-Subject: [PATCH] ACPICA: AML Parser: ignore control method status in
- module-level code
-
-Previous change in the AML parser code blindly set all non-successful
-dispatcher statuses to AE_OK. This approach is incorrect because
-successful control method invocations from module-level return
-AE_CTRL_TRANSFER. Overwriting AE_OK to this status causes the AML
-parser to think that there was no return value from the control
-method invocation.
-
-fixes: 73c2a01c52b6 (ACPICA: AML Parser: ignore dispatcher error status during table load)
-
-Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
----
- drivers/acpi/acpica/psloop.c | 19 ++++++++++++-------
- 1 file changed, 12 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/acpi/acpica/psloop.c b/drivers/acpi/acpica/psloop.c
-index ee840be150b5e..44f35ab3347d1 100644
---- a/drivers/acpi/acpica/psloop.c
-+++ b/drivers/acpi/acpica/psloop.c
-@@ -709,15 +709,20 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
- } else
- if ((walk_state->
- parse_flags & ACPI_PARSE_MODULE_LEVEL)
-+ && status != AE_CTRL_TRANSFER
- && ACPI_FAILURE(status)) {
- /*
-- * ACPI_PARSE_MODULE_LEVEL means that we are loading a table by
-- * executing it as a control method. However, if we encounter
-- * an error while loading the table, we need to keep trying to
-- * load the table rather than aborting the table load. Set the
-- * status to AE_OK to proceed with the table load. If we get a
-- * failure at this point, it means that the dispatcher got an
-- * error while processing Op (most likely an AML operand error.
-+ * ACPI_PARSE_MODULE_LEVEL flag means that we are currently
-+ * loading a table by executing it as a control method.
-+ * However, if we encounter an error while loading the table,
-+ * we need to keep trying to load the table rather than
-+ * aborting the table load (setting the status to AE_OK
-+ * continues the table load). If we get a failure at this
-+ * point, it means that the dispatcher got an error while
-+ * processing Op (most likely an AML operand error) or a
-+ * control method was called from module level and the
-+ * dispatcher returned AE_CTRL_TRANSFER. In the latter case,
-+ * leave the status alone, there's nothing wrong with it.
- */
- status = AE_OK;
- }