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/parser | |
| 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/parser')
| -rw-r--r-- | drivers/acpi/parser/psargs.c | 7 | ||||
| -rw-r--r-- | drivers/acpi/parser/psloop.c | 6 | ||||
| -rw-r--r-- | drivers/acpi/parser/psopcode.c | 2 | ||||
| -rw-r--r-- | drivers/acpi/parser/psparse.c | 8 | ||||
| -rw-r--r-- | drivers/acpi/parser/psscope.c | 1 | ||||
| -rw-r--r-- | drivers/acpi/parser/pstree.c | 7 | ||||
| -rw-r--r-- | drivers/acpi/parser/psutils.c | 1 | ||||
| -rw-r--r-- | drivers/acpi/parser/pswalk.c | 3 | ||||
| -rw-r--r-- | drivers/acpi/parser/psxface.c | 2 |
9 files changed, 37 insertions, 0 deletions
diff --git a/drivers/acpi/parser/psargs.c b/drivers/acpi/parser/psargs.c index de573be52718..1c5934fe1853 100644 --- a/drivers/acpi/parser/psargs.c +++ b/drivers/acpi/parser/psargs.c | |||
| @@ -275,6 +275,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state, | |||
| 275 | */ | 275 | */ |
| 276 | if (ACPI_SUCCESS(status) && | 276 | if (ACPI_SUCCESS(status) && |
| 277 | possible_method_call && (node->type == ACPI_TYPE_METHOD)) { | 277 | possible_method_call && (node->type == ACPI_TYPE_METHOD)) { |
| 278 | |||
| 278 | /* This name is actually a control method invocation */ | 279 | /* This name is actually a control method invocation */ |
| 279 | 280 | ||
| 280 | method_desc = acpi_ns_get_attached_object(node); | 281 | method_desc = acpi_ns_get_attached_object(node); |
| @@ -319,6 +320,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state, | |||
| 319 | * some not_found cases are allowed | 320 | * some not_found cases are allowed |
| 320 | */ | 321 | */ |
| 321 | if (status == AE_NOT_FOUND) { | 322 | if (status == AE_NOT_FOUND) { |
| 323 | |||
| 322 | /* 1) not_found is ok during load pass 1/2 (allow forward references) */ | 324 | /* 1) not_found is ok during load pass 1/2 (allow forward references) */ |
| 323 | 325 | ||
| 324 | if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) != | 326 | if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) != |
| @@ -354,6 +356,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state, | |||
| 354 | 356 | ||
| 355 | if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == | 357 | if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == |
| 356 | ACPI_PARSE_EXECUTE) { | 358 | ACPI_PARSE_EXECUTE) { |
| 359 | |||
| 357 | /* Report a control method execution error */ | 360 | /* Report a control method execution error */ |
| 358 | 361 | ||
| 359 | status = acpi_ds_method_error(status, walk_state); | 362 | status = acpi_ds_method_error(status, walk_state); |
| @@ -620,6 +623,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, | |||
| 620 | case ARGP_FIELDLIST: | 623 | case ARGP_FIELDLIST: |
| 621 | 624 | ||
| 622 | if (parser_state->aml < parser_state->pkg_end) { | 625 | if (parser_state->aml < parser_state->pkg_end) { |
| 626 | |||
| 623 | /* Non-empty list */ | 627 | /* Non-empty list */ |
| 624 | 628 | ||
| 625 | while (parser_state->aml < parser_state->pkg_end) { | 629 | while (parser_state->aml < parser_state->pkg_end) { |
| @@ -645,6 +649,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, | |||
| 645 | case ARGP_BYTELIST: | 649 | case ARGP_BYTELIST: |
| 646 | 650 | ||
| 647 | if (parser_state->aml < parser_state->pkg_end) { | 651 | if (parser_state->aml < parser_state->pkg_end) { |
| 652 | |||
| 648 | /* Non-empty list */ | 653 | /* Non-empty list */ |
| 649 | 654 | ||
| 650 | arg = acpi_ps_alloc_op(AML_INT_BYTELIST_OP); | 655 | arg = acpi_ps_alloc_op(AML_INT_BYTELIST_OP); |
| @@ -673,6 +678,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, | |||
| 673 | if (subop == 0 || | 678 | if (subop == 0 || |
| 674 | acpi_ps_is_leading_char(subop) || | 679 | acpi_ps_is_leading_char(subop) || |
| 675 | acpi_ps_is_prefix_char(subop)) { | 680 | acpi_ps_is_prefix_char(subop)) { |
| 681 | |||
| 676 | /* null_name or name_string */ | 682 | /* null_name or name_string */ |
| 677 | 683 | ||
| 678 | arg = acpi_ps_alloc_op(AML_INT_NAMEPATH_OP); | 684 | arg = acpi_ps_alloc_op(AML_INT_NAMEPATH_OP); |
| @@ -703,6 +709,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, | |||
| 703 | case ARGP_OBJLIST: | 709 | case ARGP_OBJLIST: |
| 704 | 710 | ||
| 705 | if (parser_state->aml < parser_state->pkg_end) { | 711 | if (parser_state->aml < parser_state->pkg_end) { |
| 712 | |||
| 706 | /* Non-empty list of variable arguments, nothing returned */ | 713 | /* Non-empty list of variable arguments, nothing returned */ |
| 707 | 714 | ||
| 708 | walk_state->arg_count = ACPI_VAR_ARGS; | 715 | walk_state->arg_count = ACPI_VAR_ARGS; |
diff --git a/drivers/acpi/parser/psloop.c b/drivers/acpi/parser/psloop.c index 00b072e15d19..42062d5abc9e 100644 --- a/drivers/acpi/parser/psloop.c +++ b/drivers/acpi/parser/psloop.c | |||
| @@ -95,6 +95,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 95 | #if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY)) | 95 | #if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY)) |
| 96 | 96 | ||
| 97 | if (walk_state->walk_type & ACPI_WALK_METHOD_RESTART) { | 97 | if (walk_state->walk_type & ACPI_WALK_METHOD_RESTART) { |
| 98 | |||
| 98 | /* We are restarting a preempted control method */ | 99 | /* We are restarting a preempted control method */ |
| 99 | 100 | ||
| 100 | if (acpi_ps_has_completed_scope(parser_state)) { | 101 | if (acpi_ps_has_completed_scope(parser_state)) { |
| @@ -143,6 +144,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 143 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 144 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
| 144 | "Popped scope, Op=%p\n", op)); | 145 | "Popped scope, Op=%p\n", op)); |
| 145 | } else if (walk_state->prev_op) { | 146 | } else if (walk_state->prev_op) { |
| 147 | |||
| 146 | /* We were in the middle of an op */ | 148 | /* We were in the middle of an op */ |
| 147 | 149 | ||
| 148 | op = walk_state->prev_op; | 150 | op = walk_state->prev_op; |
| @@ -156,6 +158,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 156 | while ((parser_state->aml < parser_state->aml_end) || (op)) { | 158 | while ((parser_state->aml < parser_state->aml_end) || (op)) { |
| 157 | aml_op_start = parser_state->aml; | 159 | aml_op_start = parser_state->aml; |
| 158 | if (!op) { | 160 | if (!op) { |
| 161 | |||
| 159 | /* Get the next opcode from the AML stream */ | 162 | /* Get the next opcode from the AML stream */ |
| 160 | 163 | ||
| 161 | walk_state->aml_offset = | 164 | walk_state->aml_offset = |
| @@ -213,6 +216,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 213 | /* Create Op structure and append to parent's argument list */ | 216 | /* Create Op structure and append to parent's argument list */ |
| 214 | 217 | ||
| 215 | if (walk_state->op_info->flags & AML_NAMED) { | 218 | if (walk_state->op_info->flags & AML_NAMED) { |
| 219 | |||
| 216 | /* Allocate a new pre_op if necessary */ | 220 | /* Allocate a new pre_op if necessary */ |
| 217 | 221 | ||
| 218 | if (!pre_op) { | 222 | if (!pre_op) { |
| @@ -388,6 +392,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 388 | /* Are there any arguments that must be processed? */ | 392 | /* Are there any arguments that must be processed? */ |
| 389 | 393 | ||
| 390 | if (walk_state->arg_types) { | 394 | if (walk_state->arg_types) { |
| 395 | |||
| 391 | /* Get arguments */ | 396 | /* Get arguments */ |
| 392 | 397 | ||
| 393 | switch (op->common.aml_opcode) { | 398 | switch (op->common.aml_opcode) { |
| @@ -853,6 +858,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 853 | } | 858 | } |
| 854 | 859 | ||
| 855 | else if (ACPI_FAILURE(status)) { | 860 | else if (ACPI_FAILURE(status)) { |
| 861 | |||
| 856 | /* First error is most important */ | 862 | /* First error is most important */ |
| 857 | 863 | ||
| 858 | (void) | 864 | (void) |
diff --git a/drivers/acpi/parser/psopcode.c b/drivers/acpi/parser/psopcode.c index 11d6351ab8b2..9eb8d0663886 100644 --- a/drivers/acpi/parser/psopcode.c +++ b/drivers/acpi/parser/psopcode.c | |||
| @@ -731,6 +731,7 @@ const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode) | |||
| 731 | * Detect normal 8-bit opcode or extended 16-bit opcode | 731 | * Detect normal 8-bit opcode or extended 16-bit opcode |
| 732 | */ | 732 | */ |
| 733 | if (!(opcode & 0xFF00)) { | 733 | if (!(opcode & 0xFF00)) { |
| 734 | |||
| 734 | /* Simple (8-bit) opcode: 0-255, can't index beyond table */ | 735 | /* Simple (8-bit) opcode: 0-255, can't index beyond table */ |
| 735 | 736 | ||
| 736 | return (&acpi_gbl_aml_op_info | 737 | return (&acpi_gbl_aml_op_info |
| @@ -739,6 +740,7 @@ const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode) | |||
| 739 | 740 | ||
| 740 | if (((opcode & 0xFF00) == AML_EXTENDED_OPCODE) && | 741 | if (((opcode & 0xFF00) == AML_EXTENDED_OPCODE) && |
| 741 | (((u8) opcode) <= MAX_EXTENDED_OPCODE)) { | 742 | (((u8) opcode) <= MAX_EXTENDED_OPCODE)) { |
| 743 | |||
| 742 | /* Valid extended (16-bit) opcode */ | 744 | /* Valid extended (16-bit) opcode */ |
| 743 | 745 | ||
| 744 | return (&acpi_gbl_aml_op_info | 746 | return (&acpi_gbl_aml_op_info |
diff --git a/drivers/acpi/parser/psparse.c b/drivers/acpi/parser/psparse.c index a9f3229f4106..83d8916bc1af 100644 --- a/drivers/acpi/parser/psparse.c +++ b/drivers/acpi/parser/psparse.c | |||
| @@ -106,6 +106,7 @@ u16 acpi_ps_peek_opcode(struct acpi_parse_state * parser_state) | |||
| 106 | opcode = (u16) ACPI_GET8(aml); | 106 | opcode = (u16) ACPI_GET8(aml); |
| 107 | 107 | ||
| 108 | if (opcode == AML_EXTENDED_OP_PREFIX) { | 108 | if (opcode == AML_EXTENDED_OP_PREFIX) { |
| 109 | |||
| 109 | /* Extended opcode, get the second opcode byte */ | 110 | /* Extended opcode, get the second opcode byte */ |
| 110 | 111 | ||
| 111 | aml++; | 112 | aml++; |
| @@ -158,6 +159,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state, | |||
| 158 | if (op->common.parent) { | 159 | if (op->common.parent) { |
| 159 | prev = op->common.parent->common.value.arg; | 160 | prev = op->common.parent->common.value.arg; |
| 160 | if (!prev) { | 161 | if (!prev) { |
| 162 | |||
| 161 | /* Nothing more to do */ | 163 | /* Nothing more to do */ |
| 162 | 164 | ||
| 163 | goto cleanup; | 165 | goto cleanup; |
| @@ -245,6 +247,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state, | |||
| 245 | /* We must unlink this op from the parent tree */ | 247 | /* We must unlink this op from the parent tree */ |
| 246 | 248 | ||
| 247 | if (prev == op) { | 249 | if (prev == op) { |
| 250 | |||
| 248 | /* This op is the first in the list */ | 251 | /* This op is the first in the list */ |
| 249 | 252 | ||
| 250 | if (replacement_op) { | 253 | if (replacement_op) { |
| @@ -265,6 +268,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state, | |||
| 265 | 268 | ||
| 266 | else | 269 | else |
| 267 | while (prev) { | 270 | while (prev) { |
| 271 | |||
| 268 | /* Traverse all siblings in the parent's argument list */ | 272 | /* Traverse all siblings in the parent's argument list */ |
| 269 | 273 | ||
| 270 | next = prev->common.next; | 274 | next = prev->common.next; |
| @@ -510,6 +514,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 510 | } else if (status == AE_CTRL_TERMINATE) { | 514 | } else if (status == AE_CTRL_TERMINATE) { |
| 511 | status = AE_OK; | 515 | status = AE_OK; |
| 512 | } else if ((status != AE_OK) && (walk_state->method_desc)) { | 516 | } else if ((status != AE_OK) && (walk_state->method_desc)) { |
| 517 | |||
| 513 | /* Either the method parse or actual execution failed */ | 518 | /* Either the method parse or actual execution failed */ |
| 514 | 519 | ||
| 515 | ACPI_ERROR_METHOD("Method parse/execution failed", | 520 | ACPI_ERROR_METHOD("Method parse/execution failed", |
| @@ -551,6 +556,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 551 | if (((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == | 556 | if (((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == |
| 552 | ACPI_PARSE_EXECUTE) || (ACPI_FAILURE(status))) { | 557 | ACPI_PARSE_EXECUTE) || (ACPI_FAILURE(status))) { |
| 553 | if (walk_state->method_desc) { | 558 | if (walk_state->method_desc) { |
| 559 | |||
| 554 | /* Decrement the thread count on the method parse tree */ | 560 | /* Decrement the thread count on the method parse tree */ |
| 555 | 561 | ||
| 556 | if (walk_state->method_desc->method. | 562 | if (walk_state->method_desc->method. |
| @@ -633,12 +639,14 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 633 | } | 639 | } |
| 634 | } else { | 640 | } else { |
| 635 | if (previous_walk_state->return_desc) { | 641 | if (previous_walk_state->return_desc) { |
| 642 | |||
| 636 | /* Caller doesn't want it, must delete it */ | 643 | /* Caller doesn't want it, must delete it */ |
| 637 | 644 | ||
| 638 | acpi_ut_remove_reference(previous_walk_state-> | 645 | acpi_ut_remove_reference(previous_walk_state-> |
| 639 | return_desc); | 646 | return_desc); |
| 640 | } | 647 | } |
| 641 | if (previous_walk_state->implicit_return_obj) { | 648 | if (previous_walk_state->implicit_return_obj) { |
| 649 | |||
| 642 | /* Caller doesn't want it, must delete it */ | 650 | /* Caller doesn't want it, must delete it */ |
| 643 | 651 | ||
| 644 | acpi_ut_remove_reference(previous_walk_state-> | 652 | acpi_ut_remove_reference(previous_walk_state-> |
diff --git a/drivers/acpi/parser/psscope.c b/drivers/acpi/parser/psscope.c index bc6047caccd9..edb7c9ba6ec2 100644 --- a/drivers/acpi/parser/psscope.c +++ b/drivers/acpi/parser/psscope.c | |||
| @@ -165,6 +165,7 @@ acpi_ps_push_scope(struct acpi_parse_state *parser_state, | |||
| 165 | acpi_ut_push_generic_state(&parser_state->scope, scope); | 165 | acpi_ut_push_generic_state(&parser_state->scope, scope); |
| 166 | 166 | ||
| 167 | if (arg_count == ACPI_VAR_ARGS) { | 167 | if (arg_count == ACPI_VAR_ARGS) { |
| 168 | |||
| 168 | /* Multiple arguments */ | 169 | /* Multiple arguments */ |
| 169 | 170 | ||
| 170 | scope->parse_scope.arg_end = parser_state->pkg_end; | 171 | scope->parse_scope.arg_end = parser_state->pkg_end; |
diff --git a/drivers/acpi/parser/pstree.c b/drivers/acpi/parser/pstree.c index dd6f16726fc4..6aa0012643ce 100644 --- a/drivers/acpi/parser/pstree.c +++ b/drivers/acpi/parser/pstree.c | |||
| @@ -77,6 +77,7 @@ union acpi_parse_object *acpi_ps_get_arg(union acpi_parse_object *op, u32 argn) | |||
| 77 | 77 | ||
| 78 | op_info = acpi_ps_get_opcode_info(op->common.aml_opcode); | 78 | op_info = acpi_ps_get_opcode_info(op->common.aml_opcode); |
| 79 | if (op_info->class == AML_CLASS_UNKNOWN) { | 79 | if (op_info->class == AML_CLASS_UNKNOWN) { |
| 80 | |||
| 80 | /* Invalid opcode or ASCII character */ | 81 | /* Invalid opcode or ASCII character */ |
| 81 | 82 | ||
| 82 | return (NULL); | 83 | return (NULL); |
| @@ -85,6 +86,7 @@ union acpi_parse_object *acpi_ps_get_arg(union acpi_parse_object *op, u32 argn) | |||
| 85 | /* Check if this opcode requires argument sub-objects */ | 86 | /* Check if this opcode requires argument sub-objects */ |
| 86 | 87 | ||
| 87 | if (!(op_info->flags & AML_HAS_ARGS)) { | 88 | if (!(op_info->flags & AML_HAS_ARGS)) { |
| 89 | |||
| 88 | /* Has no linked argument objects */ | 90 | /* Has no linked argument objects */ |
| 89 | 91 | ||
| 90 | return (NULL); | 92 | return (NULL); |
| @@ -130,6 +132,7 @@ acpi_ps_append_arg(union acpi_parse_object *op, union acpi_parse_object *arg) | |||
| 130 | 132 | ||
| 131 | op_info = acpi_ps_get_opcode_info(op->common.aml_opcode); | 133 | op_info = acpi_ps_get_opcode_info(op->common.aml_opcode); |
| 132 | if (op_info->class == AML_CLASS_UNKNOWN) { | 134 | if (op_info->class == AML_CLASS_UNKNOWN) { |
| 135 | |||
| 133 | /* Invalid opcode */ | 136 | /* Invalid opcode */ |
| 134 | 137 | ||
| 135 | ACPI_ERROR((AE_INFO, "Invalid AML Opcode: 0x%2.2X", | 138 | ACPI_ERROR((AE_INFO, "Invalid AML Opcode: 0x%2.2X", |
| @@ -140,6 +143,7 @@ acpi_ps_append_arg(union acpi_parse_object *op, union acpi_parse_object *arg) | |||
| 140 | /* Check if this opcode requires argument sub-objects */ | 143 | /* Check if this opcode requires argument sub-objects */ |
| 141 | 144 | ||
| 142 | if (!(op_info->flags & AML_HAS_ARGS)) { | 145 | if (!(op_info->flags & AML_HAS_ARGS)) { |
| 146 | |||
| 143 | /* Has no linked argument objects */ | 147 | /* Has no linked argument objects */ |
| 144 | 148 | ||
| 145 | return; | 149 | return; |
| @@ -148,6 +152,7 @@ acpi_ps_append_arg(union acpi_parse_object *op, union acpi_parse_object *arg) | |||
| 148 | /* Append the argument to the linked argument list */ | 152 | /* Append the argument to the linked argument list */ |
| 149 | 153 | ||
| 150 | if (op->common.value.arg) { | 154 | if (op->common.value.arg) { |
| 155 | |||
| 151 | /* Append to existing argument list */ | 156 | /* Append to existing argument list */ |
| 152 | 157 | ||
| 153 | prev_arg = op->common.value.arg; | 158 | prev_arg = op->common.value.arg; |
| @@ -222,12 +227,14 @@ union acpi_parse_object *acpi_ps_get_depth_next(union acpi_parse_object *origin, | |||
| 222 | } | 227 | } |
| 223 | 228 | ||
| 224 | if (arg == origin) { | 229 | if (arg == origin) { |
| 230 | |||
| 225 | /* Reached parent of origin, end search */ | 231 | /* Reached parent of origin, end search */ |
| 226 | 232 | ||
| 227 | return (NULL); | 233 | return (NULL); |
| 228 | } | 234 | } |
| 229 | 235 | ||
| 230 | if (parent->common.next) { | 236 | if (parent->common.next) { |
| 237 | |||
| 231 | /* Found sibling of parent */ | 238 | /* Found sibling of parent */ |
| 232 | 239 | ||
| 233 | return (parent->common.next); | 240 | return (parent->common.next); |
diff --git a/drivers/acpi/parser/psutils.c b/drivers/acpi/parser/psutils.c index 3e07cb9cb748..a4c33a4bfe35 100644 --- a/drivers/acpi/parser/psutils.c +++ b/drivers/acpi/parser/psutils.c | |||
| @@ -135,6 +135,7 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode) | |||
| 135 | /* Allocate the minimum required size object */ | 135 | /* Allocate the minimum required size object */ |
| 136 | 136 | ||
| 137 | if (flags == ACPI_PARSEOP_GENERIC) { | 137 | if (flags == ACPI_PARSEOP_GENERIC) { |
| 138 | |||
| 138 | /* The generic op (default) is by far the most common (16 to 1) */ | 139 | /* The generic op (default) is by far the most common (16 to 1) */ |
| 139 | 140 | ||
| 140 | op = acpi_os_acquire_object(acpi_gbl_ps_node_cache); | 141 | op = acpi_os_acquire_object(acpi_gbl_ps_node_cache); |
diff --git a/drivers/acpi/parser/pswalk.c b/drivers/acpi/parser/pswalk.c index 06f05bfd7612..3d08b8c6db41 100644 --- a/drivers/acpi/parser/pswalk.c +++ b/drivers/acpi/parser/pswalk.c | |||
| @@ -69,13 +69,16 @@ void acpi_ps_delete_parse_tree(union acpi_parse_object *subtree_root) | |||
| 69 | /* Visit all nodes in the subtree */ | 69 | /* Visit all nodes in the subtree */ |
| 70 | 70 | ||
| 71 | while (op) { | 71 | while (op) { |
| 72 | |||
| 72 | /* Check if we are not ascending */ | 73 | /* Check if we are not ascending */ |
| 73 | 74 | ||
| 74 | if (op != parent) { | 75 | if (op != parent) { |
| 76 | |||
| 75 | /* Look for an argument or child of the current op */ | 77 | /* Look for an argument or child of the current op */ |
| 76 | 78 | ||
| 77 | next = acpi_ps_get_arg(op, 0); | 79 | next = acpi_ps_get_arg(op, 0); |
| 78 | if (next) { | 80 | if (next) { |
| 81 | |||
| 79 | /* Still going downward in tree (Op is not completed yet) */ | 82 | /* Still going downward in tree (Op is not completed yet) */ |
| 80 | 83 | ||
| 81 | op = next; | 84 | op = next; |
diff --git a/drivers/acpi/parser/psxface.c b/drivers/acpi/parser/psxface.c index 2dd48cbb7c02..e09a820ee294 100644 --- a/drivers/acpi/parser/psxface.c +++ b/drivers/acpi/parser/psxface.c | |||
| @@ -317,9 +317,11 @@ acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action) | |||
| 317 | acpi_native_uint i; | 317 | acpi_native_uint i; |
| 318 | 318 | ||
| 319 | if ((info->parameter_type == ACPI_PARAM_ARGS) && (info->parameters)) { | 319 | if ((info->parameter_type == ACPI_PARAM_ARGS) && (info->parameters)) { |
| 320 | |||
| 320 | /* Update reference count for each parameter */ | 321 | /* Update reference count for each parameter */ |
| 321 | 322 | ||
| 322 | for (i = 0; info->parameters[i]; i++) { | 323 | for (i = 0; info->parameters[i]; i++) { |
| 324 | |||
| 323 | /* Ignore errors, just do them all */ | 325 | /* Ignore errors, just do them all */ |
| 324 | 326 | ||
| 325 | (void)acpi_ut_update_object_reference(info-> | 327 | (void)acpi_ut_update_object_reference(info-> |
