ACPICA: Interpreter: Remove temporary code for External() opcode
authorBob Moore <robert.moore@intel.com>
Thu, 4 Aug 2016 08:42:42 +0000 (16:42 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 13 Aug 2016 01:09:31 +0000 (03:09 +0200)
ACPICA commit f2d349f8a11efc0f438ad6903564f3a6755dc6b9

The interpreter should never see this opcode (it is used by
disassemblers), so the final implementation is to return an
error.

Link: https://github.com/acpica/acpica/commit/f2d349f8
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>
drivers/acpi/acpica/dsutils.c

index f393de9..7d8ef52 100644 (file)
@@ -565,15 +565,14 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state,
                                        status = AE_OK;
                                } else if (parent_op->common.aml_opcode ==
                                           AML_EXTERNAL_OP) {
-
-                                       /* TBD: May only be temporary */
-
-                                       obj_desc =
-                                           acpi_ut_create_string_object((acpi_size)name_length);
-
-                                       strncpy(obj_desc->string.pointer,
-                                               name_string, name_length);
-                                       status = AE_OK;
+                                       /*
+                                        * This opcode should never appear here. It is used only
+                                        * by AML disassemblers and is surrounded by an If(0)
+                                        * by the ASL compiler.
+                                        *
+                                        * Therefore, if we see it here, it is a serious error.
+                                        */
+                                       status = AE_AML_BAD_OPCODE;
                                } else {
                                        /*
                                         * We just plain didn't find it -- which is a