aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/executer/exresolv.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/acpi/executer/exresolv.c b/drivers/acpi/executer/exresolv.c
index 74ab220a5924..795ec8c7363c 100644
--- a/drivers/acpi/executer/exresolv.c
+++ b/drivers/acpi/executer/exresolv.c
@@ -194,6 +194,12 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
194 194
195 case ACPI_TYPE_PACKAGE: 195 case ACPI_TYPE_PACKAGE:
196 196
197 /* If method call - leave the Reference on the stack */
198
199 if (walk_state->opcode == AML_INT_METHODCALL_OP) {
200 break;
201 }
202
197 obj_desc = *stack_desc->reference.where; 203 obj_desc = *stack_desc->reference.where;
198 if (obj_desc) { 204 if (obj_desc) {
199 /* 205 /*
@@ -210,7 +216,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
210 * the package, can't dereference it 216 * the package, can't dereference it
211 */ 217 */
212 ACPI_ERROR((AE_INFO, 218 ACPI_ERROR((AE_INFO,
213 "Attempt to deref an Index to NULL pkg element Idx=%p", 219 "Attempt to dereference an Index to NULL package element Idx=%p",
214 stack_desc)); 220 stack_desc));
215 status = AE_AML_UNINITIALIZED_ELEMENT; 221 status = AE_AML_UNINITIALIZED_ELEMENT;
216 } 222 }
@@ -221,7 +227,7 @@ acpi_ex_resolve_object_to_value(union acpi_operand_object **stack_ptr,
221 /* Invalid reference object */ 227 /* Invalid reference object */
222 228
223 ACPI_ERROR((AE_INFO, 229 ACPI_ERROR((AE_INFO,
224 "Unknown TargetType %X in Index/Reference obj %p", 230 "Unknown TargetType %X in Index/Reference object %p",
225 stack_desc->reference.target_type, 231 stack_desc->reference.target_type,
226 stack_desc)); 232 stack_desc));
227 status = AE_AML_INTERNAL; 233 status = AE_AML_INTERNAL;