aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/dispatcher/dsopcode.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2006-10-02 00:00:00 -0400
committerLen Brown <len.brown@intel.com>2006-03-31 02:19:03 -0500
commit52fc0b026e99b5d5d585095148d997d5634bbc25 (patch)
tree7bf93132cfd3e6957308a84198ee159f7d43cf6f /drivers/acpi/dispatcher/dsopcode.c
parent46358614ed5b031797522f1020e989c959a8d8a6 (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/dsopcode.c')
-rw-r--r--drivers/acpi/dispatcher/dsopcode.c4
1 files changed, 4 insertions, 0 deletions
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);