ACPICA: Fix asltests using the Fatal() opcode

Some asltests test the behavior of the Fatal() opcode and thus require
that said opcode does not return an error when called.

Introduce a compile-time option called ACPI_CONTINUE_ON_FATAL to
instruct the executor to continue the execution of AML bytecode when
encountering a Fatal() opcode. Also update the asltest to use this
new option.

Fixes: ("Abort AML bytecode execution when executing AML_FATAL_OP")
Link: https://github.com/acpica/acpica/commit/428b3410c490
Signed-off-by: Armin Wolf <W_Armin@gmx.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/2052065.usQuhbGJ8B@rafael.j.wysocki
This commit is contained in:
Armin Wolf 2026-01-14 13:27:47 +01:00 committed by Rafael J. Wysocki
parent 091c4af356
commit c3bc5f6d89
1 changed files with 7 additions and 0 deletions

View File

@ -72,11 +72,18 @@ acpi_status acpi_ex_opcode_3A_0T_0R(struct acpi_walk_state *walk_state)
acpi_os_signal(ACPI_SIGNAL_FATAL, &fatal);
#ifndef ACPI_CONTINUE_ON_FATAL
/*
* Might return while OS is shutting down, so abort the AML execution
* by returning an error.
*/
return_ACPI_STATUS(AE_ERROR);
#else
/*
* The alstests require that the Fatal() opcode does not return an error.
*/
return_ACPI_STATUS(AE_OK);
#endif
case AML_EXTERNAL_OP:
/*