diff options
Diffstat (limited to 'drivers/acpi/parser')
| -rw-r--r-- | drivers/acpi/parser/psargs.c | 25 | ||||
| -rw-r--r-- | drivers/acpi/parser/psloop.c | 25 | ||||
| -rw-r--r-- | drivers/acpi/parser/psopcode.c | 6 | ||||
| -rw-r--r-- | drivers/acpi/parser/psparse.c | 35 | ||||
| -rw-r--r-- | drivers/acpi/parser/psscope.c | 17 | ||||
| -rw-r--r-- | drivers/acpi/parser/pstree.c | 8 | ||||
| -rw-r--r-- | drivers/acpi/parser/psutils.c | 5 | ||||
| -rw-r--r-- | drivers/acpi/parser/pswalk.c | 5 | ||||
| -rw-r--r-- | drivers/acpi/parser/psxface.c | 46 |
9 files changed, 105 insertions, 67 deletions
diff --git a/drivers/acpi/parser/psargs.c b/drivers/acpi/parser/psargs.c index de573be52718..bf88e076c3e9 100644 --- a/drivers/acpi/parser/psargs.c +++ b/drivers/acpi/parser/psargs.c | |||
| @@ -79,7 +79,7 @@ acpi_ps_get_next_package_length(struct acpi_parse_state *parser_state) | |||
| 79 | acpi_native_uint byte_count; | 79 | acpi_native_uint byte_count; |
| 80 | u8 byte_zero_mask = 0x3F; /* Default [0:5] */ | 80 | u8 byte_zero_mask = 0x3F; /* Default [0:5] */ |
| 81 | 81 | ||
| 82 | ACPI_FUNCTION_TRACE("ps_get_next_package_length"); | 82 | ACPI_FUNCTION_TRACE(ps_get_next_package_length); |
| 83 | 83 | ||
| 84 | /* | 84 | /* |
| 85 | * Byte 0 bits [6:7] contain the number of additional bytes | 85 | * Byte 0 bits [6:7] contain the number of additional bytes |
| @@ -128,7 +128,7 @@ u8 *acpi_ps_get_next_package_end(struct acpi_parse_state *parser_state) | |||
| 128 | u8 *start = parser_state->aml; | 128 | u8 *start = parser_state->aml; |
| 129 | u32 package_length; | 129 | u32 package_length; |
| 130 | 130 | ||
| 131 | ACPI_FUNCTION_TRACE("ps_get_next_package_end"); | 131 | ACPI_FUNCTION_TRACE(ps_get_next_package_end); |
| 132 | 132 | ||
| 133 | /* Function below updates parser_state->Aml */ | 133 | /* Function below updates parser_state->Aml */ |
| 134 | 134 | ||
| @@ -157,7 +157,7 @@ char *acpi_ps_get_next_namestring(struct acpi_parse_state *parser_state) | |||
| 157 | u8 *start = parser_state->aml; | 157 | u8 *start = parser_state->aml; |
| 158 | u8 *end = parser_state->aml; | 158 | u8 *end = parser_state->aml; |
| 159 | 159 | ||
| 160 | ACPI_FUNCTION_TRACE("ps_get_next_namestring"); | 160 | ACPI_FUNCTION_TRACE(ps_get_next_namestring); |
| 161 | 161 | ||
| 162 | /* Point past any namestring prefix characters (backslash or carat) */ | 162 | /* Point past any namestring prefix characters (backslash or carat) */ |
| 163 | 163 | ||
| @@ -237,7 +237,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state, | |||
| 237 | struct acpi_namespace_node *node; | 237 | struct acpi_namespace_node *node; |
| 238 | union acpi_generic_state scope_info; | 238 | union acpi_generic_state scope_info; |
| 239 | 239 | ||
| 240 | ACPI_FUNCTION_TRACE("ps_get_next_namepath"); | 240 | ACPI_FUNCTION_TRACE(ps_get_next_namepath); |
| 241 | 241 | ||
| 242 | path = acpi_ps_get_next_namestring(parser_state); | 242 | path = acpi_ps_get_next_namestring(parser_state); |
| 243 | acpi_ps_init_op(arg, AML_INT_NAMEPATH_OP); | 243 | acpi_ps_init_op(arg, AML_INT_NAMEPATH_OP); |
| @@ -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); |
| @@ -388,7 +391,7 @@ acpi_ps_get_next_simple_arg(struct acpi_parse_state *parser_state, | |||
| 388 | u16 opcode; | 391 | u16 opcode; |
| 389 | u8 *aml = parser_state->aml; | 392 | u8 *aml = parser_state->aml; |
| 390 | 393 | ||
| 391 | ACPI_FUNCTION_TRACE_U32("ps_get_next_simple_arg", arg_type); | 394 | ACPI_FUNCTION_TRACE_U32(ps_get_next_simple_arg, arg_type); |
| 392 | 395 | ||
| 393 | switch (arg_type) { | 396 | switch (arg_type) { |
| 394 | case ARGP_BYTEDATA: | 397 | case ARGP_BYTEDATA: |
| @@ -453,7 +456,7 @@ acpi_ps_get_next_simple_arg(struct acpi_parse_state *parser_state, | |||
| 453 | 456 | ||
| 454 | default: | 457 | default: |
| 455 | 458 | ||
| 456 | ACPI_ERROR((AE_INFO, "Invalid arg_type %X", arg_type)); | 459 | ACPI_ERROR((AE_INFO, "Invalid ArgType %X", arg_type)); |
| 457 | return_VOID; | 460 | return_VOID; |
| 458 | } | 461 | } |
| 459 | 462 | ||
| @@ -484,7 +487,7 @@ static union acpi_parse_object *acpi_ps_get_next_field(struct acpi_parse_state | |||
| 484 | u16 opcode; | 487 | u16 opcode; |
| 485 | u32 name; | 488 | u32 name; |
| 486 | 489 | ||
| 487 | ACPI_FUNCTION_TRACE("ps_get_next_field"); | 490 | ACPI_FUNCTION_TRACE(ps_get_next_field); |
| 488 | 491 | ||
| 489 | /* Determine field type */ | 492 | /* Determine field type */ |
| 490 | 493 | ||
| @@ -590,7 +593,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, | |||
| 590 | u32 subop; | 593 | u32 subop; |
| 591 | acpi_status status = AE_OK; | 594 | acpi_status status = AE_OK; |
| 592 | 595 | ||
| 593 | ACPI_FUNCTION_TRACE_PTR("ps_get_next_arg", parser_state); | 596 | ACPI_FUNCTION_TRACE_PTR(ps_get_next_arg, parser_state); |
| 594 | 597 | ||
| 595 | switch (arg_type) { | 598 | switch (arg_type) { |
| 596 | case ARGP_BYTEDATA: | 599 | case ARGP_BYTEDATA: |
| @@ -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; |
| @@ -711,7 +718,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state, | |||
| 711 | 718 | ||
| 712 | default: | 719 | default: |
| 713 | 720 | ||
| 714 | ACPI_ERROR((AE_INFO, "Invalid arg_type: %X", arg_type)); | 721 | ACPI_ERROR((AE_INFO, "Invalid ArgType: %X", arg_type)); |
| 715 | status = AE_AML_OPERAND_TYPE; | 722 | status = AE_AML_OPERAND_TYPE; |
| 716 | break; | 723 | break; |
| 717 | } | 724 | } |
diff --git a/drivers/acpi/parser/psloop.c b/drivers/acpi/parser/psloop.c index 00b072e15d19..e1541db3753a 100644 --- a/drivers/acpi/parser/psloop.c +++ b/drivers/acpi/parser/psloop.c | |||
| @@ -83,7 +83,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 83 | struct acpi_parse_state *parser_state; | 83 | struct acpi_parse_state *parser_state; |
| 84 | u8 *aml_op_start = NULL; | 84 | u8 *aml_op_start = NULL; |
| 85 | 85 | ||
| 86 | ACPI_FUNCTION_TRACE_PTR("ps_parse_loop", walk_state); | 86 | ACPI_FUNCTION_TRACE_PTR(ps_parse_loop, walk_state); |
| 87 | 87 | ||
| 88 | if (walk_state->descending_callback == NULL) { | 88 | if (walk_state->descending_callback == NULL) { |
| 89 | return_ACPI_STATUS(AE_BAD_PARAMETER); | 89 | return_ACPI_STATUS(AE_BAD_PARAMETER); |
| @@ -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)) { |
| @@ -128,7 +129,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 128 | 129 | ||
| 129 | } | 130 | } |
| 130 | ACPI_EXCEPTION((AE_INFO, status, | 131 | ACPI_EXCEPTION((AE_INFO, status, |
| 131 | "get_predicate Failed")); | 132 | "GetPredicate Failed")); |
| 132 | return_ACPI_STATUS(status); | 133 | return_ACPI_STATUS(status); |
| 133 | } | 134 | } |
| 134 | 135 | ||
| @@ -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) { |
| @@ -371,7 +375,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 371 | 375 | ||
| 372 | if (walk_state->op_info) { | 376 | if (walk_state->op_info) { |
| 373 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 377 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
| 374 | "Opcode %4.4X [%s] Op %p Aml %p aml_offset %5.5X\n", | 378 | "Opcode %4.4X [%s] Op %p Aml %p AmlOffset %5.5X\n", |
| 375 | (u32) op->common.aml_opcode, | 379 | (u32) op->common.aml_opcode, |
| 376 | walk_state->op_info->name, op, | 380 | walk_state->op_info->name, op, |
| 377 | parser_state->aml, | 381 | parser_state->aml, |
| @@ -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) { |
| @@ -742,7 +747,19 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 742 | if (ACPI_FAILURE(status2)) { | 747 | if (ACPI_FAILURE(status2)) { |
| 743 | return_ACPI_STATUS(status2); | 748 | return_ACPI_STATUS(status2); |
| 744 | } | 749 | } |
| 750 | |||
| 751 | status2 = | ||
| 752 | acpi_ds_result_stack_pop | ||
| 753 | (walk_state); | ||
| 754 | if (ACPI_FAILURE(status2)) { | ||
| 755 | return_ACPI_STATUS(status2); | ||
| 756 | } | ||
| 757 | |||
| 758 | acpi_ut_delete_generic_state | ||
| 759 | (acpi_ut_pop_generic_state | ||
| 760 | (&walk_state->control_state)); | ||
| 745 | } | 761 | } |
| 762 | |||
| 746 | acpi_ps_pop_scope(parser_state, &op, | 763 | acpi_ps_pop_scope(parser_state, &op, |
| 747 | &walk_state->arg_types, | 764 | &walk_state->arg_types, |
| 748 | &walk_state->arg_count); | 765 | &walk_state->arg_count); |
| @@ -762,6 +779,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 762 | return_ACPI_STATUS(status2); | 779 | return_ACPI_STATUS(status2); |
| 763 | } | 780 | } |
| 764 | } | 781 | } |
| 782 | |||
| 765 | acpi_ps_pop_scope(parser_state, &op, | 783 | acpi_ps_pop_scope(parser_state, &op, |
| 766 | &walk_state->arg_types, | 784 | &walk_state->arg_types, |
| 767 | &walk_state->arg_count); | 785 | &walk_state->arg_count); |
| @@ -853,6 +871,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
| 853 | } | 871 | } |
| 854 | 872 | ||
| 855 | else if (ACPI_FAILURE(status)) { | 873 | else if (ACPI_FAILURE(status)) { |
| 874 | |||
| 856 | /* First error is most important */ | 875 | /* First error is most important */ |
| 857 | 876 | ||
| 858 | (void) | 877 | (void) |
diff --git a/drivers/acpi/parser/psopcode.c b/drivers/acpi/parser/psopcode.c index 11d6351ab8b2..4bd25e32769f 100644 --- a/drivers/acpi/parser/psopcode.c +++ b/drivers/acpi/parser/psopcode.c | |||
| @@ -725,12 +725,13 @@ static const u8 acpi_gbl_long_op_index[NUM_EXTENDED_OPCODE] = { | |||
| 725 | 725 | ||
| 726 | const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode) | 726 | const struct acpi_opcode_info *acpi_ps_get_opcode_info(u16 opcode) |
| 727 | { | 727 | { |
| 728 | ACPI_FUNCTION_NAME("ps_get_opcode_info"); | 728 | ACPI_FUNCTION_NAME(ps_get_opcode_info); |
| 729 | 729 | ||
| 730 | /* | 730 | /* |
| 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 |
| @@ -779,7 +781,7 @@ char *acpi_ps_get_opcode_name(u16 opcode) | |||
| 779 | return (op->name); | 781 | return (op->name); |
| 780 | 782 | ||
| 781 | #else | 783 | #else |
| 782 | return ("AE_NOT_CONFIGURED"); | 784 | return ("OpcodeName unavailable"); |
| 783 | 785 | ||
| 784 | #endif | 786 | #endif |
| 785 | } | 787 | } |
diff --git a/drivers/acpi/parser/psparse.c b/drivers/acpi/parser/psparse.c index a9f3229f4106..7ee2f2e77525 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++; |
| @@ -137,7 +138,7 @@ acpi_ps_complete_this_op(struct acpi_walk_state * walk_state, | |||
| 137 | const struct acpi_opcode_info *parent_info; | 138 | const struct acpi_opcode_info *parent_info; |
| 138 | union acpi_parse_object *replacement_op = NULL; | 139 | union acpi_parse_object *replacement_op = NULL; |
| 139 | 140 | ||
| 140 | ACPI_FUNCTION_TRACE_PTR("ps_complete_this_op", op); | 141 | ACPI_FUNCTION_TRACE_PTR(ps_complete_this_op, op); |
| 141 | 142 | ||
| 142 | /* Check for null Op, can happen if AML code is corrupt */ | 143 | /* Check for null Op, can happen if AML code is corrupt */ |
| 143 | 144 | ||
| @@ -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; |
| @@ -329,7 +333,7 @@ acpi_ps_next_parse_state(struct acpi_walk_state *walk_state, | |||
| 329 | struct acpi_parse_state *parser_state = &walk_state->parser_state; | 333 | struct acpi_parse_state *parser_state = &walk_state->parser_state; |
| 330 | acpi_status status = AE_CTRL_PENDING; | 334 | acpi_status status = AE_CTRL_PENDING; |
| 331 | 335 | ||
| 332 | ACPI_FUNCTION_TRACE_PTR("ps_next_parse_state", op); | 336 | ACPI_FUNCTION_TRACE_PTR(ps_next_parse_state, op); |
| 333 | 337 | ||
| 334 | switch (callback_status) { | 338 | switch (callback_status) { |
| 335 | case AE_CTRL_TERMINATE: | 339 | case AE_CTRL_TERMINATE: |
| @@ -449,10 +453,10 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 449 | struct acpi_thread_state *prev_walk_list = acpi_gbl_current_walk_list; | 453 | struct acpi_thread_state *prev_walk_list = acpi_gbl_current_walk_list; |
| 450 | struct acpi_walk_state *previous_walk_state; | 454 | struct acpi_walk_state *previous_walk_state; |
| 451 | 455 | ||
| 452 | ACPI_FUNCTION_TRACE("ps_parse_aml"); | 456 | ACPI_FUNCTION_TRACE(ps_parse_aml); |
| 453 | 457 | ||
| 454 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 458 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
| 455 | "Entered with walk_state=%p Aml=%p size=%X\n", | 459 | "Entered with WalkState=%p Aml=%p size=%X\n", |
| 456 | walk_state, walk_state->parser_state.aml, | 460 | walk_state, walk_state->parser_state.aml, |
| 457 | walk_state->parser_state.aml_size)); | 461 | walk_state->parser_state.aml_size)); |
| 458 | 462 | ||
| @@ -460,6 +464,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 460 | 464 | ||
| 461 | thread = acpi_ut_create_thread_state(); | 465 | thread = acpi_ut_create_thread_state(); |
| 462 | if (!thread) { | 466 | if (!thread) { |
| 467 | acpi_ds_delete_walk_state(walk_state); | ||
| 463 | return_ACPI_STATUS(AE_NO_MEMORY); | 468 | return_ACPI_STATUS(AE_NO_MEMORY); |
| 464 | } | 469 | } |
| 465 | 470 | ||
| @@ -510,6 +515,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 510 | } else if (status == AE_CTRL_TERMINATE) { | 515 | } else if (status == AE_CTRL_TERMINATE) { |
| 511 | status = AE_OK; | 516 | status = AE_OK; |
| 512 | } else if ((status != AE_OK) && (walk_state->method_desc)) { | 517 | } else if ((status != AE_OK) && (walk_state->method_desc)) { |
| 518 | |||
| 513 | /* Either the method parse or actual execution failed */ | 519 | /* Either the method parse or actual execution failed */ |
| 514 | 520 | ||
| 515 | ACPI_ERROR_METHOD("Method parse/execution failed", | 521 | ACPI_ERROR_METHOD("Method parse/execution failed", |
| @@ -550,20 +556,9 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 550 | */ | 556 | */ |
| 551 | if (((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == | 557 | if (((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) == |
| 552 | ACPI_PARSE_EXECUTE) || (ACPI_FAILURE(status))) { | 558 | ACPI_PARSE_EXECUTE) || (ACPI_FAILURE(status))) { |
| 553 | if (walk_state->method_desc) { | 559 | acpi_ds_terminate_control_method(walk_state-> |
| 554 | /* Decrement the thread count on the method parse tree */ | 560 | method_desc, |
| 555 | 561 | walk_state); | |
| 556 | if (walk_state->method_desc->method. | ||
| 557 | thread_count) { | ||
| 558 | walk_state->method_desc->method. | ||
| 559 | thread_count--; | ||
| 560 | } else { | ||
| 561 | ACPI_ERROR((AE_INFO, | ||
| 562 | "Invalid zero thread count in method")); | ||
| 563 | } | ||
| 564 | } | ||
| 565 | |||
| 566 | acpi_ds_terminate_control_method(walk_state); | ||
| 567 | } | 562 | } |
| 568 | 563 | ||
| 569 | /* Delete this walk state and all linked control states */ | 564 | /* Delete this walk state and all linked control states */ |
| @@ -572,7 +567,7 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 572 | previous_walk_state = walk_state; | 567 | previous_walk_state = walk_state; |
| 573 | 568 | ||
| 574 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 569 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
| 575 | "return_value=%p, implicit_value=%p State=%p\n", | 570 | "ReturnValue=%p, ImplicitValue=%p State=%p\n", |
| 576 | walk_state->return_desc, | 571 | walk_state->return_desc, |
| 577 | walk_state->implicit_return_obj, walk_state)); | 572 | walk_state->implicit_return_obj, walk_state)); |
| 578 | 573 | ||
| @@ -633,12 +628,14 @@ acpi_status acpi_ps_parse_aml(struct acpi_walk_state *walk_state) | |||
| 633 | } | 628 | } |
| 634 | } else { | 629 | } else { |
| 635 | if (previous_walk_state->return_desc) { | 630 | if (previous_walk_state->return_desc) { |
| 631 | |||
| 636 | /* Caller doesn't want it, must delete it */ | 632 | /* Caller doesn't want it, must delete it */ |
| 637 | 633 | ||
| 638 | acpi_ut_remove_reference(previous_walk_state-> | 634 | acpi_ut_remove_reference(previous_walk_state-> |
| 639 | return_desc); | 635 | return_desc); |
| 640 | } | 636 | } |
| 641 | if (previous_walk_state->implicit_return_obj) { | 637 | if (previous_walk_state->implicit_return_obj) { |
| 638 | |||
| 642 | /* Caller doesn't want it, must delete it */ | 639 | /* Caller doesn't want it, must delete it */ |
| 643 | 640 | ||
| 644 | acpi_ut_remove_reference(previous_walk_state-> | 641 | acpi_ut_remove_reference(previous_walk_state-> |
diff --git a/drivers/acpi/parser/psscope.c b/drivers/acpi/parser/psscope.c index bc6047caccd9..a3e0314de24d 100644 --- a/drivers/acpi/parser/psscope.c +++ b/drivers/acpi/parser/psscope.c | |||
| @@ -106,14 +106,14 @@ acpi_ps_init_scope(struct acpi_parse_state * parser_state, | |||
| 106 | { | 106 | { |
| 107 | union acpi_generic_state *scope; | 107 | union acpi_generic_state *scope; |
| 108 | 108 | ||
| 109 | ACPI_FUNCTION_TRACE_PTR("ps_init_scope", root_op); | 109 | ACPI_FUNCTION_TRACE_PTR(ps_init_scope, root_op); |
| 110 | 110 | ||
| 111 | scope = acpi_ut_create_generic_state(); | 111 | scope = acpi_ut_create_generic_state(); |
| 112 | if (!scope) { | 112 | if (!scope) { |
| 113 | return_ACPI_STATUS(AE_NO_MEMORY); | 113 | return_ACPI_STATUS(AE_NO_MEMORY); |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | scope->common.data_type = ACPI_DESC_TYPE_STATE_RPSCOPE; | 116 | scope->common.descriptor_type = ACPI_DESC_TYPE_STATE_RPSCOPE; |
| 117 | scope->parse_scope.op = root_op; | 117 | scope->parse_scope.op = root_op; |
| 118 | scope->parse_scope.arg_count = ACPI_VAR_ARGS; | 118 | scope->parse_scope.arg_count = ACPI_VAR_ARGS; |
| 119 | scope->parse_scope.arg_end = parser_state->aml_end; | 119 | scope->parse_scope.arg_end = parser_state->aml_end; |
| @@ -147,14 +147,14 @@ acpi_ps_push_scope(struct acpi_parse_state *parser_state, | |||
| 147 | { | 147 | { |
| 148 | union acpi_generic_state *scope; | 148 | union acpi_generic_state *scope; |
| 149 | 149 | ||
| 150 | ACPI_FUNCTION_TRACE_PTR("ps_push_scope", op); | 150 | ACPI_FUNCTION_TRACE_PTR(ps_push_scope, op); |
| 151 | 151 | ||
| 152 | scope = acpi_ut_create_generic_state(); | 152 | scope = acpi_ut_create_generic_state(); |
| 153 | if (!scope) { | 153 | if (!scope) { |
| 154 | return_ACPI_STATUS(AE_NO_MEMORY); | 154 | return_ACPI_STATUS(AE_NO_MEMORY); |
| 155 | } | 155 | } |
| 156 | 156 | ||
| 157 | scope->common.data_type = ACPI_DESC_TYPE_STATE_PSCOPE; | 157 | scope->common.descriptor_type = ACPI_DESC_TYPE_STATE_PSCOPE; |
| 158 | scope->parse_scope.op = op; | 158 | scope->parse_scope.op = op; |
| 159 | scope->parse_scope.arg_list = remaining_args; | 159 | scope->parse_scope.arg_list = remaining_args; |
| 160 | scope->parse_scope.arg_count = arg_count; | 160 | scope->parse_scope.arg_count = arg_count; |
| @@ -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; |
| @@ -199,14 +200,14 @@ acpi_ps_pop_scope(struct acpi_parse_state *parser_state, | |||
| 199 | { | 200 | { |
| 200 | union acpi_generic_state *scope = parser_state->scope; | 201 | union acpi_generic_state *scope = parser_state->scope; |
| 201 | 202 | ||
| 202 | ACPI_FUNCTION_TRACE("ps_pop_scope"); | 203 | ACPI_FUNCTION_TRACE(ps_pop_scope); |
| 203 | 204 | ||
| 204 | /* Only pop the scope if there is in fact a next scope */ | 205 | /* Only pop the scope if there is in fact a next scope */ |
| 205 | 206 | ||
| 206 | if (scope->common.next) { | 207 | if (scope->common.next) { |
| 207 | scope = acpi_ut_pop_generic_state(&parser_state->scope); | 208 | scope = acpi_ut_pop_generic_state(&parser_state->scope); |
| 208 | 209 | ||
| 209 | /* return to parsing previous op */ | 210 | /* Return to parsing previous op */ |
| 210 | 211 | ||
| 211 | *op = scope->parse_scope.op; | 212 | *op = scope->parse_scope.op; |
| 212 | *arg_list = scope->parse_scope.arg_list; | 213 | *arg_list = scope->parse_scope.arg_list; |
| @@ -217,7 +218,7 @@ acpi_ps_pop_scope(struct acpi_parse_state *parser_state, | |||
| 217 | 218 | ||
| 218 | acpi_ut_delete_generic_state(scope); | 219 | acpi_ut_delete_generic_state(scope); |
| 219 | } else { | 220 | } else { |
| 220 | /* empty parse stack, prepare to fetch next opcode */ | 221 | /* Empty parse stack, prepare to fetch next opcode */ |
| 221 | 222 | ||
| 222 | *op = NULL; | 223 | *op = NULL; |
| 223 | *arg_list = 0; | 224 | *arg_list = 0; |
| @@ -246,7 +247,7 @@ void acpi_ps_cleanup_scope(struct acpi_parse_state *parser_state) | |||
| 246 | { | 247 | { |
| 247 | union acpi_generic_state *scope; | 248 | union acpi_generic_state *scope; |
| 248 | 249 | ||
| 249 | ACPI_FUNCTION_TRACE_PTR("ps_cleanup_scope", parser_state); | 250 | ACPI_FUNCTION_TRACE_PTR(ps_cleanup_scope, parser_state); |
| 250 | 251 | ||
| 251 | if (!parser_state) { | 252 | if (!parser_state) { |
| 252 | return_VOID; | 253 | return_VOID; |
diff --git a/drivers/acpi/parser/pstree.c b/drivers/acpi/parser/pstree.c index dd6f16726fc4..0015717ef096 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); |
| @@ -299,5 +306,4 @@ union acpi_parse_object *acpi_ps_get_child(union acpi_parse_object *op) | |||
| 299 | return (child); | 306 | return (child); |
| 300 | } | 307 | } |
| 301 | #endif | 308 | #endif |
| 302 | |||
| 303 | #endif /* ACPI_FUTURE_USAGE */ | 309 | #endif /* ACPI_FUTURE_USAGE */ |
diff --git a/drivers/acpi/parser/psutils.c b/drivers/acpi/parser/psutils.c index 3e07cb9cb748..182474ae8ce9 100644 --- a/drivers/acpi/parser/psutils.c +++ b/drivers/acpi/parser/psutils.c | |||
| @@ -89,7 +89,7 @@ void acpi_ps_init_op(union acpi_parse_object *op, u16 opcode) | |||
| 89 | { | 89 | { |
| 90 | ACPI_FUNCTION_ENTRY(); | 90 | ACPI_FUNCTION_ENTRY(); |
| 91 | 91 | ||
| 92 | op->common.data_type = ACPI_DESC_TYPE_PARSER; | 92 | op->common.descriptor_type = ACPI_DESC_TYPE_PARSER; |
| 93 | op->common.aml_opcode = opcode; | 93 | op->common.aml_opcode = opcode; |
| 94 | 94 | ||
| 95 | ACPI_DISASM_ONLY_MEMBERS(ACPI_STRNCPY(op->common.aml_op_name, | 95 | ACPI_DISASM_ONLY_MEMBERS(ACPI_STRNCPY(op->common.aml_op_name, |
| @@ -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); |
| @@ -171,7 +172,7 @@ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode) | |||
| 171 | 172 | ||
| 172 | void acpi_ps_free_op(union acpi_parse_object *op) | 173 | void acpi_ps_free_op(union acpi_parse_object *op) |
| 173 | { | 174 | { |
| 174 | ACPI_FUNCTION_NAME("ps_free_op"); | 175 | ACPI_FUNCTION_NAME(ps_free_op); |
| 175 | 176 | ||
| 176 | if (op->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { | 177 | if (op->common.aml_opcode == AML_INT_RETURN_VALUE_OP) { |
| 177 | ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", | 178 | ACPI_DEBUG_PRINT((ACPI_DB_ALLOCATIONS, "Free retval op: %p\n", |
diff --git a/drivers/acpi/parser/pswalk.c b/drivers/acpi/parser/pswalk.c index 06f05bfd7612..a84a547a0f1b 100644 --- a/drivers/acpi/parser/pswalk.c +++ b/drivers/acpi/parser/pswalk.c | |||
| @@ -64,18 +64,21 @@ void acpi_ps_delete_parse_tree(union acpi_parse_object *subtree_root) | |||
| 64 | union acpi_parse_object *next = NULL; | 64 | union acpi_parse_object *next = NULL; |
| 65 | union acpi_parse_object *parent = NULL; | 65 | union acpi_parse_object *parent = NULL; |
| 66 | 66 | ||
| 67 | ACPI_FUNCTION_TRACE_PTR("ps_delete_parse_tree", subtree_root); | 67 | ACPI_FUNCTION_TRACE_PTR(ps_delete_parse_tree, subtree_root); |
| 68 | 68 | ||
| 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..5d996c1140af 100644 --- a/drivers/acpi/parser/psxface.c +++ b/drivers/acpi/parser/psxface.c | |||
| @@ -50,14 +50,14 @@ | |||
| 50 | ACPI_MODULE_NAME("psxface") | 50 | ACPI_MODULE_NAME("psxface") |
| 51 | 51 | ||
| 52 | /* Local Prototypes */ | 52 | /* Local Prototypes */ |
| 53 | static void acpi_ps_start_trace(struct acpi_parameter_info *info); | 53 | static void acpi_ps_start_trace(struct acpi_evaluate_info *info); |
| 54 | 54 | ||
| 55 | static void acpi_ps_stop_trace(struct acpi_parameter_info *info); | 55 | static void acpi_ps_stop_trace(struct acpi_evaluate_info *info); |
| 56 | 56 | ||
| 57 | static acpi_status acpi_ps_execute_pass(struct acpi_parameter_info *info); | 57 | static acpi_status acpi_ps_execute_pass(struct acpi_evaluate_info *info); |
| 58 | 58 | ||
| 59 | static void | 59 | static void |
| 60 | acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action); | 60 | acpi_ps_update_parameter_list(struct acpi_evaluate_info *info, u16 action); |
| 61 | 61 | ||
| 62 | /******************************************************************************* | 62 | /******************************************************************************* |
| 63 | * | 63 | * |
| @@ -113,7 +113,7 @@ acpi_debug_trace(char *name, u32 debug_level, u32 debug_layer, u32 flags) | |||
| 113 | * | 113 | * |
| 114 | ******************************************************************************/ | 114 | ******************************************************************************/ |
| 115 | 115 | ||
| 116 | static void acpi_ps_start_trace(struct acpi_parameter_info *info) | 116 | static void acpi_ps_start_trace(struct acpi_evaluate_info *info) |
| 117 | { | 117 | { |
| 118 | acpi_status status; | 118 | acpi_status status; |
| 119 | 119 | ||
| @@ -125,7 +125,7 @@ static void acpi_ps_start_trace(struct acpi_parameter_info *info) | |||
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | if ((!acpi_gbl_trace_method_name) || | 127 | if ((!acpi_gbl_trace_method_name) || |
| 128 | (acpi_gbl_trace_method_name != info->node->name.integer)) { | 128 | (acpi_gbl_trace_method_name != info->resolved_node->name.integer)) { |
| 129 | goto exit; | 129 | goto exit; |
| 130 | } | 130 | } |
| 131 | 131 | ||
| @@ -158,7 +158,7 @@ static void acpi_ps_start_trace(struct acpi_parameter_info *info) | |||
| 158 | * | 158 | * |
| 159 | ******************************************************************************/ | 159 | ******************************************************************************/ |
| 160 | 160 | ||
| 161 | static void acpi_ps_stop_trace(struct acpi_parameter_info *info) | 161 | static void acpi_ps_stop_trace(struct acpi_evaluate_info *info) |
| 162 | { | 162 | { |
| 163 | acpi_status status; | 163 | acpi_status status; |
| 164 | 164 | ||
| @@ -170,7 +170,7 @@ static void acpi_ps_stop_trace(struct acpi_parameter_info *info) | |||
| 170 | } | 170 | } |
| 171 | 171 | ||
| 172 | if ((!acpi_gbl_trace_method_name) || | 172 | if ((!acpi_gbl_trace_method_name) || |
| 173 | (acpi_gbl_trace_method_name != info->node->name.integer)) { | 173 | (acpi_gbl_trace_method_name != info->resolved_node->name.integer)) { |
| 174 | goto exit; | 174 | goto exit; |
| 175 | } | 175 | } |
| 176 | 176 | ||
| @@ -212,22 +212,23 @@ static void acpi_ps_stop_trace(struct acpi_parameter_info *info) | |||
| 212 | * | 212 | * |
| 213 | ******************************************************************************/ | 213 | ******************************************************************************/ |
| 214 | 214 | ||
| 215 | acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info) | 215 | acpi_status acpi_ps_execute_method(struct acpi_evaluate_info *info) |
| 216 | { | 216 | { |
| 217 | acpi_status status; | 217 | acpi_status status; |
| 218 | 218 | ||
| 219 | ACPI_FUNCTION_TRACE("ps_execute_method"); | 219 | ACPI_FUNCTION_TRACE(ps_execute_method); |
| 220 | 220 | ||
| 221 | /* Validate the Info and method Node */ | 221 | /* Validate the Info and method Node */ |
| 222 | 222 | ||
| 223 | if (!info || !info->node) { | 223 | if (!info || !info->resolved_node) { |
| 224 | return_ACPI_STATUS(AE_NULL_ENTRY); | 224 | return_ACPI_STATUS(AE_NULL_ENTRY); |
| 225 | } | 225 | } |
| 226 | 226 | ||
| 227 | /* Init for new method, wait on concurrency semaphore */ | 227 | /* Init for new method, wait on concurrency semaphore */ |
| 228 | 228 | ||
| 229 | status = | 229 | status = |
| 230 | acpi_ds_begin_method_execution(info->node, info->obj_desc, NULL); | 230 | acpi_ds_begin_method_execution(info->resolved_node, info->obj_desc, |
| 231 | NULL); | ||
| 231 | if (ACPI_FAILURE(status)) { | 232 | if (ACPI_FAILURE(status)) { |
| 232 | return_ACPI_STATUS(status); | 233 | return_ACPI_STATUS(status); |
| 233 | } | 234 | } |
| @@ -248,7 +249,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info) | |||
| 248 | */ | 249 | */ |
| 249 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 250 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
| 250 | "**** Begin Method Parse **** Entry=%p obj=%p\n", | 251 | "**** Begin Method Parse **** Entry=%p obj=%p\n", |
| 251 | info->node, info->obj_desc)); | 252 | info->resolved_node, info->obj_desc)); |
| 252 | 253 | ||
| 253 | info->pass_number = 1; | 254 | info->pass_number = 1; |
| 254 | status = acpi_ps_execute_pass(info); | 255 | status = acpi_ps_execute_pass(info); |
| @@ -261,7 +262,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info) | |||
| 261 | */ | 262 | */ |
| 262 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 263 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, |
| 263 | "**** Begin Method Execution **** Entry=%p obj=%p\n", | 264 | "**** Begin Method Execution **** Entry=%p obj=%p\n", |
| 264 | info->node, info->obj_desc)); | 265 | info->resolved_node, info->obj_desc)); |
| 265 | 266 | ||
| 266 | info->pass_number = 3; | 267 | info->pass_number = 3; |
| 267 | status = acpi_ps_execute_pass(info); | 268 | status = acpi_ps_execute_pass(info); |
| @@ -286,8 +287,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info) | |||
| 286 | * a control exception code | 287 | * a control exception code |
| 287 | */ | 288 | */ |
| 288 | if (info->return_object) { | 289 | if (info->return_object) { |
| 289 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, | 290 | ACPI_DEBUG_PRINT((ACPI_DB_PARSE, "Method returned ObjDesc=%p\n", |
| 290 | "Method returned obj_desc=%p\n", | ||
| 291 | info->return_object)); | 291 | info->return_object)); |
| 292 | ACPI_DUMP_STACK_ENTRY(info->return_object); | 292 | ACPI_DUMP_STACK_ENTRY(info->return_object); |
| 293 | 293 | ||
| @@ -301,7 +301,7 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info) | |||
| 301 | * | 301 | * |
| 302 | * FUNCTION: acpi_ps_update_parameter_list | 302 | * FUNCTION: acpi_ps_update_parameter_list |
| 303 | * | 303 | * |
| 304 | * PARAMETERS: Info - See struct acpi_parameter_info | 304 | * PARAMETERS: Info - See struct acpi_evaluate_info |
| 305 | * (Used: parameter_type and Parameters) | 305 | * (Used: parameter_type and Parameters) |
| 306 | * Action - Add or Remove reference | 306 | * Action - Add or Remove reference |
| 307 | * | 307 | * |
| @@ -312,14 +312,16 @@ acpi_status acpi_ps_execute_method(struct acpi_parameter_info *info) | |||
| 312 | ******************************************************************************/ | 312 | ******************************************************************************/ |
| 313 | 313 | ||
| 314 | static void | 314 | static void |
| 315 | acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action) | 315 | acpi_ps_update_parameter_list(struct acpi_evaluate_info *info, u16 action) |
| 316 | { | 316 | { |
| 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-> |
| @@ -333,7 +335,7 @@ acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action) | |||
| 333 | * | 335 | * |
| 334 | * FUNCTION: acpi_ps_execute_pass | 336 | * FUNCTION: acpi_ps_execute_pass |
| 335 | * | 337 | * |
| 336 | * PARAMETERS: Info - See struct acpi_parameter_info | 338 | * PARAMETERS: Info - See struct acpi_evaluate_info |
| 337 | * (Used: pass_number, Node, and obj_desc) | 339 | * (Used: pass_number, Node, and obj_desc) |
| 338 | * | 340 | * |
| 339 | * RETURN: Status | 341 | * RETURN: Status |
| @@ -342,13 +344,13 @@ acpi_ps_update_parameter_list(struct acpi_parameter_info *info, u16 action) | |||
| 342 | * | 344 | * |
| 343 | ******************************************************************************/ | 345 | ******************************************************************************/ |
| 344 | 346 | ||
| 345 | static acpi_status acpi_ps_execute_pass(struct acpi_parameter_info *info) | 347 | static acpi_status acpi_ps_execute_pass(struct acpi_evaluate_info *info) |
| 346 | { | 348 | { |
| 347 | acpi_status status; | 349 | acpi_status status; |
| 348 | union acpi_parse_object *op; | 350 | union acpi_parse_object *op; |
| 349 | struct acpi_walk_state *walk_state; | 351 | struct acpi_walk_state *walk_state; |
| 350 | 352 | ||
| 351 | ACPI_FUNCTION_TRACE("ps_execute_pass"); | 353 | ACPI_FUNCTION_TRACE(ps_execute_pass); |
| 352 | 354 | ||
| 353 | /* Create and init a Root Node */ | 355 | /* Create and init a Root Node */ |
| 354 | 356 | ||
| @@ -367,7 +369,7 @@ static acpi_status acpi_ps_execute_pass(struct acpi_parameter_info *info) | |||
| 367 | goto cleanup; | 369 | goto cleanup; |
| 368 | } | 370 | } |
| 369 | 371 | ||
| 370 | status = acpi_ds_init_aml_walk(walk_state, op, info->node, | 372 | status = acpi_ds_init_aml_walk(walk_state, op, info->resolved_node, |
| 371 | info->obj_desc->method.aml_start, | 373 | info->obj_desc->method.aml_start, |
| 372 | info->obj_desc->method.aml_length, | 374 | info->obj_desc->method.aml_length, |
| 373 | info->pass_number == 1 ? NULL : info, | 375 | info->pass_number == 1 ? NULL : info, |
