diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-12-21 10:03:16 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-12-21 10:03:16 +0100 |
commit | 1027fb0fb94aaaaa36ad58193fc61c36efaced85 (patch) | |
tree | 10808022e183c1618e36c4eb7a203877d32fc214 /drivers/acpi/acpica/dspkginit.c | |
parent | 28586a51eea666d5531bcaef2f68e4abbd87242c (diff) | |
parent | 3b15e830ba59ae20a52b401e8f9e981bd21ab577 (diff) | |
download | kernel_replicant_linux-1027fb0fb94aaaaa36ad58193fc61c36efaced85.tar.gz kernel_replicant_linux-1027fb0fb94aaaaa36ad58193fc61c36efaced85.tar.bz2 kernel_replicant_linux-1027fb0fb94aaaaa36ad58193fc61c36efaced85.zip |
Merge branch 'acpica'
* acpica:
ACPICA: Update version to 20181213
ACPICA: change coding style to match ACPICA, no functional change
ACPICA: Debug output: Add option to display method/object evaluation
ACPICA: disassembler: disassemble OEMx tables as AML
ACPICA: Add "Windows 2018.2" string in the _OSI support
ACPICA: Expressions in package elements are not supported
ACPICA: Update buffer-to-string conversions
ACPICA: add comments, no functional change
ACPICA: Remove defines that use deprecated flag
ACPICA: Add "Windows 2018" string in the _OSI support
ACPICA: Update version to 20181031
ACPICA: iASL: Enhance error detection
ACPICA: iASL: adding definition and disassembly for TPM2 revision 3
ACPICA: Use %d for signed int print formatting instead of %u
ACPICA: Debugger: refactor to fix unused variable warning
Diffstat (limited to 'drivers/acpi/acpica/dspkginit.c')
-rw-r--r-- | drivers/acpi/acpica/dspkginit.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/acpi/acpica/dspkginit.c b/drivers/acpi/acpica/dspkginit.c index d703a5594a02..584853385268 100644 --- a/drivers/acpi/acpica/dspkginit.c +++ b/drivers/acpi/acpica/dspkginit.c @@ -152,6 +152,32 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state, */ for (i = 0; arg && (i < element_count); i++) { if (arg->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { + if (!arg->common.node) { + /* + * This is the case where an expression has returned a value. + * The use of expressions (term_args) within individual + * package elements is not supported by the AML interpreter, + * even though the ASL grammar supports it. Example: + * + * Name (INT1, 0x1234) + * + * Name (PKG3, Package () { + * Add (INT1, 0xAAAA0000) + * }) + * + * 1) No known AML interpreter supports this type of construct + * 2) This fixes a fault if the construct is encountered + */ + ACPI_EXCEPTION((AE_INFO, AE_SUPPORT, + "Expressions within package elements are not supported")); + + /* Cleanup the return object, it is not needed */ + + acpi_ut_remove_reference(walk_state->results-> + results.obj_desc[0]); + return_ACPI_STATUS(AE_SUPPORT); + } + if (arg->common.node->type == ACPI_TYPE_METHOD) { /* * A method reference "looks" to the parser to be a method |