summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/executer/exresnte.c
diff options
context:
space:
mode:
authorLin Ming2008-04-10 17:06:41 +0200
committerLen Brown2008-04-22 20:29:28 +0200
commit1cb2ef6606e0abd8565f66b5f95267de1b390694 (patch)
tree54ef1226c245a93a35f013b35ec58b3eb38b82ed /drivers/acpi/executer/exresnte.c
parentACPICA: Fixed a problem with Index references passed as method arguments (diff)
downloadkernel-qcow2-linux-1cb2ef6606e0abd8565f66b5f95267de1b390694.tar.gz
kernel-qcow2-linux-1cb2ef6606e0abd8565f66b5f95267de1b390694.tar.xz
kernel-qcow2-linux-1cb2ef6606e0abd8565f66b5f95267de1b390694.zip
ACPICA: Fixed a problem with CopyObject used in conjunction with the Index operator
The reference was incorrectly dereferenced before the copy. The reference is now correctly copied. http://bugzilla.kernel.org/show_bug.cgi?id=5391 Signed-off-by: Lin Ming <ming.m.lin@intel.com> Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/executer/exresnte.c')
-rw-r--r--drivers/acpi/executer/exresnte.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/acpi/executer/exresnte.c b/drivers/acpi/executer/exresnte.c
index 79a0d281f96b..42c8a0f8894c 100644
--- a/drivers/acpi/executer/exresnte.c
+++ b/drivers/acpi/executer/exresnte.c
@@ -239,13 +239,12 @@ acpi_ex_resolve_node_to_value(struct acpi_namespace_node **object_ptr,
case ACPI_TYPE_LOCAL_REFERENCE:
switch (source_desc->reference.opcode) {
- case AML_LOAD_OP:
+ case AML_LOAD_OP: /* This is a ddb_handle */
+ case AML_REF_OF_OP:
+ case AML_INDEX_OP:
- /* This is a ddb_handle */
/* Return an additional reference to the object */
- case AML_REF_OF_OP:
-
obj_desc = source_desc;
acpi_ut_add_reference(obj_desc);
break;