diff options
author | Lin Ming <ming.m.lin@intel.com> | 2008-04-10 11:06:41 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-04-22 14:29:28 -0400 |
commit | 1cb2ef6606e0abd8565f66b5f95267de1b390694 (patch) | |
tree | 54ef1226c245a93a35f013b35ec58b3eb38b82ed /drivers/acpi/executer/exresnte.c | |
parent | e5bcc811f78f294e7be8a0721b3fb513028c5af4 (diff) |
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.c | 7 |
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, | |||
239 | case ACPI_TYPE_LOCAL_REFERENCE: | 239 | case ACPI_TYPE_LOCAL_REFERENCE: |
240 | 240 | ||
241 | switch (source_desc->reference.opcode) { | 241 | switch (source_desc->reference.opcode) { |
242 | case AML_LOAD_OP: | 242 | case AML_LOAD_OP: /* This is a ddb_handle */ |
243 | case AML_REF_OF_OP: | ||
244 | case AML_INDEX_OP: | ||
243 | 245 | ||
244 | /* This is a ddb_handle */ | ||
245 | /* Return an additional reference to the object */ | 246 | /* Return an additional reference to the object */ |
246 | 247 | ||
247 | case AML_REF_OF_OP: | ||
248 | |||
249 | obj_desc = source_desc; | 248 | obj_desc = source_desc; |
250 | acpi_ut_add_reference(obj_desc); | 249 | acpi_ut_add_reference(obj_desc); |
251 | break; | 250 | break; |