diff options
Diffstat (limited to 'drivers/acpi/parser/psloop.c')
-rw-r--r-- | drivers/acpi/parser/psloop.c | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/drivers/acpi/parser/psloop.c b/drivers/acpi/parser/psloop.c index 088d33999d90..c66029b890b1 100644 --- a/drivers/acpi/parser/psloop.c +++ b/drivers/acpi/parser/psloop.c | |||
@@ -5,7 +5,7 @@ | |||
5 | *****************************************************************************/ | 5 | *****************************************************************************/ |
6 | 6 | ||
7 | /* | 7 | /* |
8 | * Copyright (C) 2000 - 2005, R. Byron Moore | 8 | * Copyright (C) 2000 - 2006, R. Byron Moore |
9 | * All rights reserved. | 9 | * All rights reserved. |
10 | * | 10 | * |
11 | * Redistribution and use in source and binary forms, with or without | 11 | * Redistribution and use in source and binary forms, with or without |
@@ -123,16 +123,10 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
123 | && ((status & AE_CODE_MASK) != | 123 | && ((status & AE_CODE_MASK) != |
124 | AE_CODE_CONTROL)) { | 124 | AE_CODE_CONTROL)) { |
125 | if (status == AE_AML_NO_RETURN_VALUE) { | 125 | if (status == AE_AML_NO_RETURN_VALUE) { |
126 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 126 | ACPI_REPORT_ERROR(("Invoked method did not return a value, %s\n", acpi_format_exception(status))); |
127 | "Invoked method did not return a value, %s\n", | ||
128 | acpi_format_exception | ||
129 | (status))); | ||
130 | 127 | ||
131 | } | 128 | } |
132 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 129 | ACPI_REPORT_ERROR(("get_predicate Failed, %s\n", acpi_format_exception(status))); |
133 | "get_predicate Failed, %s\n", | ||
134 | acpi_format_exception | ||
135 | (status))); | ||
136 | return_ACPI_STATUS(status); | 130 | return_ACPI_STATUS(status); |
137 | } | 131 | } |
138 | 132 | ||
@@ -190,11 +184,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
190 | 184 | ||
191 | /* The opcode is unrecognized. Just skip unknown opcodes */ | 185 | /* The opcode is unrecognized. Just skip unknown opcodes */ |
192 | 186 | ||
193 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 187 | ACPI_REPORT_ERROR(("Found unknown opcode %X at AML address %p offset %X, ignoring\n", walk_state->opcode, parser_state->aml, walk_state->aml_offset)); |
194 | "Found unknown opcode %X at AML address %p offset %X, ignoring\n", | ||
195 | walk_state->opcode, | ||
196 | parser_state->aml, | ||
197 | walk_state->aml_offset)); | ||
198 | 188 | ||
199 | ACPI_DUMP_BUFFER(parser_state->aml, 128); | 189 | ACPI_DUMP_BUFFER(parser_state->aml, 128); |
200 | 190 | ||
@@ -281,10 +271,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
281 | walk_state->descending_callback(walk_state, | 271 | walk_state->descending_callback(walk_state, |
282 | &op); | 272 | &op); |
283 | if (ACPI_FAILURE(status)) { | 273 | if (ACPI_FAILURE(status)) { |
284 | ACPI_DEBUG_PRINT((ACPI_DB_ERROR, | 274 | ACPI_REPORT_ERROR(("During name lookup/catalog, %s\n", acpi_format_exception(status))); |
285 | "During name lookup/catalog, %s\n", | ||
286 | acpi_format_exception | ||
287 | (status))); | ||
288 | goto close_this_op; | 275 | goto close_this_op; |
289 | } | 276 | } |
290 | 277 | ||
@@ -704,6 +691,15 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state) | |||
704 | acpi_ps_pop_scope(parser_state, &op, | 691 | acpi_ps_pop_scope(parser_state, &op, |
705 | &walk_state->arg_types, | 692 | &walk_state->arg_types, |
706 | &walk_state->arg_count); | 693 | &walk_state->arg_count); |
694 | |||
695 | if (op->common.aml_opcode != AML_WHILE_OP) { | ||
696 | status2 = | ||
697 | acpi_ds_result_stack_pop | ||
698 | (walk_state); | ||
699 | if (ACPI_FAILURE(status2)) { | ||
700 | return_ACPI_STATUS(status2); | ||
701 | } | ||
702 | } | ||
707 | } | 703 | } |
708 | 704 | ||
709 | /* Close this iteration of the While loop */ | 705 | /* Close this iteration of the While loop */ |