summaryrefslogtreecommitdiff
path: root/drivers/acpi/acpica/exoparg3.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2015-04-13 11:50:32 +0800
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-04-14 14:51:54 +0200
commit56a3d5e755e889d1543cb90a3ebaed513cadb727 (patch)
tree31e887143e802bbd19740ebea1d57cb9757ad4a9 /drivers/acpi/acpica/exoparg3.c
parent2e7cc46a0f30bc3b749e371ab0afd29b774ae898 (diff)
ACPICA: Add infrastructure for External() opcode.
ACPICA commit d115fe2ffdab449d6107d58580c5afd0a81d65fe This change adds the basic low-level infrastructure for the External AML opcode. The interpreter will simply ignore this op, as the op is intended for use by the disassembler only. Note that External() opcode is useful for disassembler, interpreter can simply ignore it and still return exceptions for unknown control methods so the kernel part only includes the grammar definition of External() opcode in order to ignore it but doesn't interpret it. Link: https://github.com/acpica/acpica/commit/d115fe2f Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Lv Zheng <lv.zheng@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/exoparg3.c')
-rw-r--r--drivers/acpi/acpica/exoparg3.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/acpi/acpica/exoparg3.c b/drivers/acpi/acpica/exoparg3.c
index b813fed95e56..1c64a988cbee 100644
--- a/drivers/acpi/acpica/exoparg3.c
+++ b/drivers/acpi/acpica/exoparg3.c
@@ -114,7 +114,18 @@ acpi_status acpi_ex_opcode_3A_0T_0R(struct acpi_walk_state *walk_state)
/* Might return while OS is shutting down, just continue */
ACPI_FREE(fatal);
- break;
+ goto cleanup;
+
+ case AML_EXTERNAL_OP:
+ /*
+ * If the interpreter sees this opcode, just ignore it. The External
+ * op is intended for use by disassemblers in order to properly
+ * disassemble control method invocations. The opcode or group of
+ * opcodes should be surrounded by an "if (0)" clause to ensure that
+ * AML interpreters never see the opcode.
+ */
+ status = AE_OK;
+ goto cleanup;
default: