diff options
author | Bob Moore <robert.moore@intel.com> | 2006-10-02 00:00:00 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2006-03-31 02:19:03 -0500 |
commit | 52fc0b026e99b5d5d585095148d997d5634bbc25 (patch) | |
tree | 7bf93132cfd3e6957308a84198ee159f7d43cf6f /drivers/acpi/dispatcher | |
parent | 46358614ed5b031797522f1020e989c959a8d8a6 (diff) |
[ACPI] ACPICA 20060210
Removed a couple of extraneous ACPI_ERROR messages that
appeared during normal execution. These became apparent
after the conversion from ACPI_DEBUG_PRINT.
Fixed a problem where the CreateField operator could hang
if the BitIndex or NumBits parameter referred to a named
object. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5359
Fixed a problem where a DeRefOf operation on a buffer
object incorrectly failed with an exception. This also
fixes a couple of related RefOf and DeRefOf issues.
From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5360
http://bugzilla.kernel.org/show_bug.cgi?id=5387
http://bugzilla.kernel.org/show_bug.cgi?id=5392
Fixed a problem where the AE_BUFFER_LIMIT exception was
returned instead of AE_STRING_LIMIT on an out-of-bounds
Index() operation. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5480
Implemented a memory cleanup at the end of the execution
of each iteration of an AML While() loop, preventing the
accumulation of outstanding objects. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5427
Eliminated a chunk of duplicate code in the object
resolution code. From Valery Podrezov.
http://bugzilla.kernel.org/show_bug.cgi?id=5336
Fixed several warnings during the 64-bit code generation.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/dispatcher')
-rw-r--r-- | drivers/acpi/dispatcher/dsfield.c | 1 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsmethod.c | 5 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsmthdat.c | 1 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsobject.c | 6 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsopcode.c | 4 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dsutils.c | 7 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswexec.c | 3 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswload.c | 9 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswscope.c | 2 | ||||
-rw-r--r-- | drivers/acpi/dispatcher/dswstate.c | 5 |
10 files changed, 42 insertions, 1 deletions
diff --git a/drivers/acpi/dispatcher/dsfield.c b/drivers/acpi/dispatcher/dsfield.c index 76bc0463f6de..3d33bcc98678 100644 --- a/drivers/acpi/dispatcher/dsfield.c +++ b/drivers/acpi/dispatcher/dsfield.c | |||
@@ -425,6 +425,7 @@ acpi_ds_init_field_objects(union acpi_parse_object *op, | |||
425 | * Walk the list of entries in the field_list | 425 | * Walk the list of entries in the field_list |
426 | */ | 426 | */ |
427 | while (arg) { | 427 | while (arg) { |
428 | |||
428 | /* Ignore OFFSET and ACCESSAS terms here */ | 429 | /* Ignore OFFSET and ACCESSAS terms here */ |
429 | 430 | ||
430 | if (arg->common.aml_opcode == AML_INT_NAMEDFIELD_OP) { | 431 | if (arg->common.aml_opcode == AML_INT_NAMEDFIELD_OP) { |
diff --git a/drivers/acpi/dispatcher/dsmethod.c b/drivers/acpi/dispatcher/dsmethod.c index c475546535b6..238916ce5412 100644 --- a/drivers/acpi/dispatcher/dsmethod.c +++ b/drivers/acpi/dispatcher/dsmethod.c | |||
@@ -81,6 +81,7 @@ acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state) | |||
81 | /* Invoke the global exception handler */ | 81 | /* Invoke the global exception handler */ |
82 | 82 | ||
83 | if (acpi_gbl_exception_handler) { | 83 | if (acpi_gbl_exception_handler) { |
84 | |||
84 | /* Exit the interpreter, allow handler to execute methods */ | 85 | /* Exit the interpreter, allow handler to execute methods */ |
85 | 86 | ||
86 | acpi_ex_exit_interpreter(); | 87 | acpi_ex_exit_interpreter(); |
@@ -100,6 +101,7 @@ acpi_ds_method_error(acpi_status status, struct acpi_walk_state *walk_state) | |||
100 | } | 101 | } |
101 | #ifdef ACPI_DISASSEMBLER | 102 | #ifdef ACPI_DISASSEMBLER |
102 | if (ACPI_FAILURE(status)) { | 103 | if (ACPI_FAILURE(status)) { |
104 | |||
103 | /* Display method locals/args if disassembler is present */ | 105 | /* Display method locals/args if disassembler is present */ |
104 | 106 | ||
105 | acpi_dm_dump_method_info(status, walk_state, walk_state->op); | 107 | acpi_dm_dump_method_info(status, walk_state, walk_state->op); |
@@ -249,6 +251,7 @@ acpi_ds_call_control_method(struct acpi_thread_state *thread, | |||
249 | } | 251 | } |
250 | 252 | ||
251 | if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) { | 253 | if (!(obj_desc->method.method_flags & AML_METHOD_INTERNAL_ONLY)) { |
254 | |||
252 | /* 1) Parse: Create a new walk state for the preempting walk */ | 255 | /* 1) Parse: Create a new walk state for the preempting walk */ |
253 | 256 | ||
254 | next_walk_state = | 257 | next_walk_state = |
@@ -378,9 +381,11 @@ acpi_ds_restart_control_method(struct acpi_walk_state *walk_state, | |||
378 | /* Did the called method return a value? */ | 381 | /* Did the called method return a value? */ |
379 | 382 | ||
380 | if (return_desc) { | 383 | if (return_desc) { |
384 | |||
381 | /* Are we actually going to use the return value? */ | 385 | /* Are we actually going to use the return value? */ |
382 | 386 | ||
383 | if (walk_state->return_used) { | 387 | if (walk_state->return_used) { |
388 | |||
384 | /* Save the return value from the previous method */ | 389 | /* Save the return value from the previous method */ |
385 | 390 | ||
386 | status = acpi_ds_result_push(return_desc, walk_state); | 391 | status = acpi_ds_result_push(return_desc, walk_state); |
diff --git a/drivers/acpi/dispatcher/dsmthdat.c b/drivers/acpi/dispatcher/dsmthdat.c index c025674f938b..f7cb5170aa11 100644 --- a/drivers/acpi/dispatcher/dsmthdat.c +++ b/drivers/acpi/dispatcher/dsmthdat.c | |||
@@ -701,6 +701,7 @@ acpi_ds_method_data_get_type(u16 opcode, | |||
701 | 701 | ||
702 | object = acpi_ns_get_attached_object(node); | 702 | object = acpi_ns_get_attached_object(node); |
703 | if (!object) { | 703 | if (!object) { |
704 | |||
704 | /* Uninitialized local/arg, return TYPE_ANY */ | 705 | /* Uninitialized local/arg, return TYPE_ANY */ |
705 | 706 | ||
706 | return_VALUE(ACPI_TYPE_ANY); | 707 | return_VALUE(ACPI_TYPE_ANY); |
diff --git a/drivers/acpi/dispatcher/dsobject.c b/drivers/acpi/dispatcher/dsobject.c index 8b21f0f9e517..1f2d0c6ef36c 100644 --- a/drivers/acpi/dispatcher/dsobject.c +++ b/drivers/acpi/dispatcher/dsobject.c | |||
@@ -103,6 +103,7 @@ acpi_ds_build_internal_object(struct acpi_walk_state *walk_state, | |||
103 | common. | 103 | common. |
104 | node))); | 104 | node))); |
105 | if (ACPI_FAILURE(status)) { | 105 | if (ACPI_FAILURE(status)) { |
106 | |||
106 | /* Check if we are resolving a named reference within a package */ | 107 | /* Check if we are resolving a named reference within a package */ |
107 | 108 | ||
108 | if ((status == AE_NOT_FOUND) | 109 | if ((status == AE_NOT_FOUND) |
@@ -195,6 +196,7 @@ acpi_ds_build_internal_buffer_obj(struct acpi_walk_state *walk_state, | |||
195 | */ | 196 | */ |
196 | obj_desc = *obj_desc_ptr; | 197 | obj_desc = *obj_desc_ptr; |
197 | if (!obj_desc) { | 198 | if (!obj_desc) { |
199 | |||
198 | /* Create a new buffer object */ | 200 | /* Create a new buffer object */ |
199 | 201 | ||
200 | obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_BUFFER); | 202 | obj_desc = acpi_ut_create_internal_object(ACPI_TYPE_BUFFER); |
@@ -355,6 +357,7 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state, | |||
355 | arg = arg->common.next; | 357 | arg = arg->common.next; |
356 | for (i = 0; arg; i++) { | 358 | for (i = 0; arg; i++) { |
357 | if (arg->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { | 359 | if (arg->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { |
360 | |||
358 | /* Object (package or buffer) is already built */ | 361 | /* Object (package or buffer) is already built */ |
359 | 362 | ||
360 | obj_desc->package.elements[i] = | 363 | obj_desc->package.elements[i] = |
@@ -408,6 +411,7 @@ acpi_ds_create_node(struct acpi_walk_state *walk_state, | |||
408 | } | 411 | } |
409 | 412 | ||
410 | if (!op->common.value.arg) { | 413 | if (!op->common.value.arg) { |
414 | |||
411 | /* No arguments, there is nothing to do */ | 415 | /* No arguments, there is nothing to do */ |
412 | 416 | ||
413 | return_ACPI_STATUS(AE_OK); | 417 | return_ACPI_STATUS(AE_OK); |
@@ -469,6 +473,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state, | |||
469 | obj_desc = *ret_obj_desc; | 473 | obj_desc = *ret_obj_desc; |
470 | op_info = acpi_ps_get_opcode_info(opcode); | 474 | op_info = acpi_ps_get_opcode_info(opcode); |
471 | if (op_info->class == AML_CLASS_UNKNOWN) { | 475 | if (op_info->class == AML_CLASS_UNKNOWN) { |
476 | |||
472 | /* Unknown opcode */ | 477 | /* Unknown opcode */ |
473 | 478 | ||
474 | return_ACPI_STATUS(AE_TYPE); | 479 | return_ACPI_STATUS(AE_TYPE); |
@@ -626,6 +631,7 @@ acpi_ds_init_object_from_op(struct acpi_walk_state *walk_state, | |||
626 | default: /* Other literals, etc.. */ | 631 | default: /* Other literals, etc.. */ |
627 | 632 | ||
628 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { | 633 | if (op->common.aml_opcode == AML_INT_NAMEPATH_OP) { |
634 | |||
629 | /* Node was saved in Op */ | 635 | /* Node was saved in Op */ |
630 | 636 | ||
631 | obj_desc->reference.node = op->common.node; | 637 | obj_desc->reference.node = op->common.node; |
diff --git a/drivers/acpi/dispatcher/dsopcode.c b/drivers/acpi/dispatcher/dsopcode.c index 6229c10674e1..8a690a9963f2 100644 --- a/drivers/acpi/dispatcher/dsopcode.c +++ b/drivers/acpi/dispatcher/dsopcode.c | |||
@@ -640,6 +640,7 @@ acpi_ds_eval_buffer_field_operands(struct acpi_walk_state *walk_state, | |||
640 | /* Initialize the Buffer Field */ | 640 | /* Initialize the Buffer Field */ |
641 | 641 | ||
642 | if (op->common.aml_opcode == AML_CREATE_FIELD_OP) { | 642 | if (op->common.aml_opcode == AML_CREATE_FIELD_OP) { |
643 | |||
643 | /* NOTE: Slightly different operands for this opcode */ | 644 | /* NOTE: Slightly different operands for this opcode */ |
644 | 645 | ||
645 | status = | 646 | status = |
@@ -984,6 +985,7 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state, | |||
984 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p\n", op)); | 985 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "[WHILE_OP] Op=%p\n", op)); |
985 | 986 | ||
986 | if (walk_state->control_state->common.value) { | 987 | if (walk_state->control_state->common.value) { |
988 | |||
987 | /* Predicate was true, go back and evaluate it again! */ | 989 | /* Predicate was true, go back and evaluate it again! */ |
988 | 990 | ||
989 | status = AE_CTRL_PENDING; | 991 | status = AE_CTRL_PENDING; |
@@ -1014,6 +1016,7 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state, | |||
1014 | * has been bubbled up the tree | 1016 | * has been bubbled up the tree |
1015 | */ | 1017 | */ |
1016 | if (op->common.value.arg) { | 1018 | if (op->common.value.arg) { |
1019 | |||
1017 | /* Since we have a real Return(), delete any implicit return */ | 1020 | /* Since we have a real Return(), delete any implicit return */ |
1018 | 1021 | ||
1019 | acpi_ds_clear_implicit_return(walk_state); | 1022 | acpi_ds_clear_implicit_return(walk_state); |
@@ -1047,6 +1050,7 @@ acpi_ds_exec_end_control_op(struct acpi_walk_state * walk_state, | |||
1047 | walk_state->return_desc = walk_state->operands[0]; | 1050 | walk_state->return_desc = walk_state->operands[0]; |
1048 | } else if ((walk_state->results) && | 1051 | } else if ((walk_state->results) && |
1049 | (walk_state->results->results.num_results > 0)) { | 1052 | (walk_state->results->results.num_results > 0)) { |
1053 | |||
1050 | /* Since we have a real Return(), delete any implicit return */ | 1054 | /* Since we have a real Return(), delete any implicit return */ |
1051 | 1055 | ||
1052 | acpi_ds_clear_implicit_return(walk_state); | 1056 | acpi_ds_clear_implicit_return(walk_state); |
diff --git a/drivers/acpi/dispatcher/dsutils.c b/drivers/acpi/dispatcher/dsutils.c index 53356a591ac1..3fbe17ebef5a 100644 --- a/drivers/acpi/dispatcher/dsutils.c +++ b/drivers/acpi/dispatcher/dsutils.c | |||
@@ -202,6 +202,7 @@ acpi_ds_is_result_used(union acpi_parse_object * op, | |||
202 | */ | 202 | */ |
203 | if ((!op->common.parent) || | 203 | if ((!op->common.parent) || |
204 | (op->common.parent->common.aml_opcode == AML_SCOPE_OP)) { | 204 | (op->common.parent->common.aml_opcode == AML_SCOPE_OP)) { |
205 | |||
205 | /* No parent, the return value cannot possibly be used */ | 206 | /* No parent, the return value cannot possibly be used */ |
206 | 207 | ||
207 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, | 208 | ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, |
@@ -352,6 +353,7 @@ acpi_ds_delete_result_if_not_used(union acpi_parse_object *op, | |||
352 | } | 353 | } |
353 | 354 | ||
354 | if (!acpi_ds_is_result_used(op, walk_state)) { | 355 | if (!acpi_ds_is_result_used(op, walk_state)) { |
356 | |||
355 | /* Must pop the result stack (obj_desc should be equal to result_obj) */ | 357 | /* Must pop the result stack (obj_desc should be equal to result_obj) */ |
356 | 358 | ||
357 | status = acpi_ds_result_pop(&obj_desc, walk_state); | 359 | status = acpi_ds_result_pop(&obj_desc, walk_state); |
@@ -498,7 +500,9 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state, | |||
498 | */ | 500 | */ |
499 | if ((walk_state->deferred_node) && | 501 | if ((walk_state->deferred_node) && |
500 | (walk_state->deferred_node->type == ACPI_TYPE_BUFFER_FIELD) | 502 | (walk_state->deferred_node->type == ACPI_TYPE_BUFFER_FIELD) |
501 | && (arg_index != 0)) { | 503 | && (arg_index == |
504 | (u32) ((walk_state->opcode == | ||
505 | AML_CREATE_FIELD_OP) ? 3 : 2))) { | ||
502 | obj_desc = | 506 | obj_desc = |
503 | ACPI_CAST_PTR(union acpi_operand_object, | 507 | ACPI_CAST_PTR(union acpi_operand_object, |
504 | walk_state->deferred_node); | 508 | walk_state->deferred_node); |
@@ -521,6 +525,7 @@ acpi_ds_create_operand(struct acpi_walk_state *walk_state, | |||
521 | && (parent_op->common.aml_opcode != AML_REGION_OP) | 525 | && (parent_op->common.aml_opcode != AML_REGION_OP) |
522 | && (parent_op->common.aml_opcode != | 526 | && (parent_op->common.aml_opcode != |
523 | AML_INT_NAMEPATH_OP)) { | 527 | AML_INT_NAMEPATH_OP)) { |
528 | |||
524 | /* Enter name into namespace if not found */ | 529 | /* Enter name into namespace if not found */ |
525 | 530 | ||
526 | interpreter_mode = ACPI_IMODE_LOAD_PASS2; | 531 | interpreter_mode = ACPI_IMODE_LOAD_PASS2; |
diff --git a/drivers/acpi/dispatcher/dswexec.c b/drivers/acpi/dispatcher/dswexec.c index f1af655ff113..198949f41048 100644 --- a/drivers/acpi/dispatcher/dswexec.c +++ b/drivers/acpi/dispatcher/dswexec.c | |||
@@ -409,6 +409,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
409 | * being the object_type and size_of operators. | 409 | * being the object_type and size_of operators. |
410 | */ | 410 | */ |
411 | if (!(walk_state->op_info->flags & AML_NO_OPERAND_RESOLVE)) { | 411 | if (!(walk_state->op_info->flags & AML_NO_OPERAND_RESOLVE)) { |
412 | |||
412 | /* Resolve all operands */ | 413 | /* Resolve all operands */ |
413 | 414 | ||
414 | status = acpi_ex_resolve_operands(walk_state->opcode, | 415 | status = acpi_ex_resolve_operands(walk_state->opcode, |
@@ -548,6 +549,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
548 | */ | 549 | */ |
549 | status = acpi_ds_resolve_operands(walk_state); | 550 | status = acpi_ds_resolve_operands(walk_state); |
550 | if (ACPI_FAILURE(status)) { | 551 | if (ACPI_FAILURE(status)) { |
552 | |||
551 | /* On error, clear all resolved operands */ | 553 | /* On error, clear all resolved operands */ |
552 | 554 | ||
553 | acpi_ds_clear_operands(walk_state); | 555 | acpi_ds_clear_operands(walk_state); |
@@ -722,6 +724,7 @@ acpi_status acpi_ds_exec_end_op(struct acpi_walk_state *walk_state) | |||
722 | cleanup: | 724 | cleanup: |
723 | 725 | ||
724 | if (walk_state->result_obj) { | 726 | if (walk_state->result_obj) { |
727 | |||
725 | /* Break to debugger to display result */ | 728 | /* Break to debugger to display result */ |
726 | 729 | ||
727 | ACPI_DEBUGGER_EXEC(acpi_db_display_result_object | 730 | ACPI_DEBUGGER_EXEC(acpi_db_display_result_object |
diff --git a/drivers/acpi/dispatcher/dswload.c b/drivers/acpi/dispatcher/dswload.c index d3d24da31c81..02b03126e14e 100644 --- a/drivers/acpi/dispatcher/dswload.c +++ b/drivers/acpi/dispatcher/dswload.c | |||
@@ -261,6 +261,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state, | |||
261 | */ | 261 | */ |
262 | 262 | ||
263 | if (walk_state->deferred_node) { | 263 | if (walk_state->deferred_node) { |
264 | |||
264 | /* This name is already in the namespace, get the node */ | 265 | /* This name is already in the namespace, get the node */ |
265 | 266 | ||
266 | node = walk_state->deferred_node; | 267 | node = walk_state->deferred_node; |
@@ -311,6 +312,7 @@ acpi_ds_load1_begin_op(struct acpi_walk_state * walk_state, | |||
311 | /* Common exit */ | 312 | /* Common exit */ |
312 | 313 | ||
313 | if (!op) { | 314 | if (!op) { |
315 | |||
314 | /* Create a new op */ | 316 | /* Create a new op */ |
315 | 317 | ||
316 | op = acpi_ps_alloc_op(walk_state->opcode); | 318 | op = acpi_ps_alloc_op(walk_state->opcode); |
@@ -413,6 +415,7 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state) | |||
413 | #endif | 415 | #endif |
414 | 416 | ||
415 | if (op->common.aml_opcode == AML_NAME_OP) { | 417 | if (op->common.aml_opcode == AML_NAME_OP) { |
418 | |||
416 | /* For Name opcode, get the object type from the argument */ | 419 | /* For Name opcode, get the object type from the argument */ |
417 | 420 | ||
418 | if (op->common.value.arg) { | 421 | if (op->common.value.arg) { |
@@ -521,6 +524,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, | |||
521 | if ((walk_state->control_state) && | 524 | if ((walk_state->control_state) && |
522 | (walk_state->control_state->common.state == | 525 | (walk_state->control_state->common.state == |
523 | ACPI_CONTROL_CONDITIONAL_EXECUTING)) { | 526 | ACPI_CONTROL_CONDITIONAL_EXECUTING)) { |
527 | |||
524 | /* We are executing a while loop outside of a method */ | 528 | /* We are executing a while loop outside of a method */ |
525 | 529 | ||
526 | status = acpi_ds_exec_begin_op(walk_state, out_op); | 530 | status = acpi_ds_exec_begin_op(walk_state, out_op); |
@@ -554,10 +558,12 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, | |||
554 | /* Get the name we are going to enter or lookup in the namespace */ | 558 | /* Get the name we are going to enter or lookup in the namespace */ |
555 | 559 | ||
556 | if (walk_state->opcode == AML_INT_NAMEPATH_OP) { | 560 | if (walk_state->opcode == AML_INT_NAMEPATH_OP) { |
561 | |||
557 | /* For Namepath op, get the path string */ | 562 | /* For Namepath op, get the path string */ |
558 | 563 | ||
559 | buffer_ptr = op->common.value.string; | 564 | buffer_ptr = op->common.value.string; |
560 | if (!buffer_ptr) { | 565 | if (!buffer_ptr) { |
566 | |||
561 | /* No name, just exit */ | 567 | /* No name, just exit */ |
562 | 568 | ||
563 | return_ACPI_STATUS(AE_OK); | 569 | return_ACPI_STATUS(AE_OK); |
@@ -680,6 +686,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, | |||
680 | /* All other opcodes */ | 686 | /* All other opcodes */ |
681 | 687 | ||
682 | if (op && op->common.node) { | 688 | if (op && op->common.node) { |
689 | |||
683 | /* This op/node was previously entered into the namespace */ | 690 | /* This op/node was previously entered into the namespace */ |
684 | 691 | ||
685 | node = op->common.node; | 692 | node = op->common.node; |
@@ -705,6 +712,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, | |||
705 | * Note: Name may already exist if we are executing a deferred opcode. | 712 | * Note: Name may already exist if we are executing a deferred opcode. |
706 | */ | 713 | */ |
707 | if (walk_state->deferred_node) { | 714 | if (walk_state->deferred_node) { |
715 | |||
708 | /* This name is already in the namespace, get the node */ | 716 | /* This name is already in the namespace, get the node */ |
709 | 717 | ||
710 | node = walk_state->deferred_node; | 718 | node = walk_state->deferred_node; |
@@ -727,6 +735,7 @@ acpi_ds_load2_begin_op(struct acpi_walk_state *walk_state, | |||
727 | } | 735 | } |
728 | 736 | ||
729 | if (!op) { | 737 | if (!op) { |
738 | |||
730 | /* Create a new op */ | 739 | /* Create a new op */ |
731 | 740 | ||
732 | op = acpi_ps_alloc_op(walk_state->opcode); | 741 | op = acpi_ps_alloc_op(walk_state->opcode); |
diff --git a/drivers/acpi/dispatcher/dswscope.c b/drivers/acpi/dispatcher/dswscope.c index ada21ef4a174..e2954fff8c5e 100644 --- a/drivers/acpi/dispatcher/dswscope.c +++ b/drivers/acpi/dispatcher/dswscope.c | |||
@@ -66,6 +66,7 @@ void acpi_ds_scope_stack_clear(struct acpi_walk_state *walk_state) | |||
66 | ACPI_FUNCTION_NAME("ds_scope_stack_clear"); | 66 | ACPI_FUNCTION_NAME("ds_scope_stack_clear"); |
67 | 67 | ||
68 | while (walk_state->scope_info) { | 68 | while (walk_state->scope_info) { |
69 | |||
69 | /* Pop a scope off the stack */ | 70 | /* Pop a scope off the stack */ |
70 | 71 | ||
71 | scope_info = walk_state->scope_info; | 72 | scope_info = walk_state->scope_info; |
@@ -105,6 +106,7 @@ acpi_ds_scope_stack_push(struct acpi_namespace_node *node, | |||
105 | ACPI_FUNCTION_TRACE("ds_scope_stack_push"); | 106 | ACPI_FUNCTION_TRACE("ds_scope_stack_push"); |
106 | 107 | ||
107 | if (!node) { | 108 | if (!node) { |
109 | |||
108 | /* Invalid scope */ | 110 | /* Invalid scope */ |
109 | 111 | ||
110 | ACPI_ERROR((AE_INFO, "Null scope parameter")); | 112 | ACPI_ERROR((AE_INFO, "Null scope parameter")); |
diff --git a/drivers/acpi/dispatcher/dswstate.c b/drivers/acpi/dispatcher/dswstate.c index fa78cb74ee36..5bc340b1b286 100644 --- a/drivers/acpi/dispatcher/dswstate.c +++ b/drivers/acpi/dispatcher/dswstate.c | |||
@@ -170,6 +170,7 @@ acpi_ds_result_pop(union acpi_operand_object ** object, | |||
170 | state->results.num_results--; | 170 | state->results.num_results--; |
171 | 171 | ||
172 | for (index = ACPI_OBJ_NUM_OPERANDS; index; index--) { | 172 | for (index = ACPI_OBJ_NUM_OPERANDS; index; index--) { |
173 | |||
173 | /* Check for a valid result object */ | 174 | /* Check for a valid result object */ |
174 | 175 | ||
175 | if (state->results.obj_desc[index - 1]) { | 176 | if (state->results.obj_desc[index - 1]) { |
@@ -448,6 +449,7 @@ acpi_ds_obj_stack_pop(u32 pop_count, struct acpi_walk_state * walk_state) | |||
448 | ACPI_FUNCTION_NAME("ds_obj_stack_pop"); | 449 | ACPI_FUNCTION_NAME("ds_obj_stack_pop"); |
449 | 450 | ||
450 | for (i = 0; i < pop_count; i++) { | 451 | for (i = 0; i < pop_count; i++) { |
452 | |||
451 | /* Check for stack underflow */ | 453 | /* Check for stack underflow */ |
452 | 454 | ||
453 | if (walk_state->num_operands == 0) { | 455 | if (walk_state->num_operands == 0) { |
@@ -494,6 +496,7 @@ acpi_ds_obj_stack_pop_and_delete(u32 pop_count, | |||
494 | ACPI_FUNCTION_NAME("ds_obj_stack_pop_and_delete"); | 496 | ACPI_FUNCTION_NAME("ds_obj_stack_pop_and_delete"); |
495 | 497 | ||
496 | for (i = 0; i < pop_count; i++) { | 498 | for (i = 0; i < pop_count; i++) { |
499 | |||
497 | /* Check for stack underflow */ | 500 | /* Check for stack underflow */ |
498 | 501 | ||
499 | if (walk_state->num_operands == 0) { | 502 | if (walk_state->num_operands == 0) { |
@@ -598,6 +601,7 @@ struct acpi_walk_state *acpi_ds_pop_walk_state(struct acpi_thread_state *thread) | |||
598 | walk_state = thread->walk_state_list; | 601 | walk_state = thread->walk_state_list; |
599 | 602 | ||
600 | if (walk_state) { | 603 | if (walk_state) { |
604 | |||
601 | /* Next walk state becomes the current walk state */ | 605 | /* Next walk state becomes the current walk state */ |
602 | 606 | ||
603 | thread->walk_state_list = walk_state->next; | 607 | thread->walk_state_list = walk_state->next; |
@@ -778,6 +782,7 @@ acpi_ds_init_aml_walk(struct acpi_walk_state *walk_state, | |||
778 | } | 782 | } |
779 | 783 | ||
780 | if (parser_state->start_node) { | 784 | if (parser_state->start_node) { |
785 | |||
781 | /* Push start scope on scope stack and make it current */ | 786 | /* Push start scope on scope stack and make it current */ |
782 | 787 | ||
783 | status = | 788 | status = |