[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>
This commit is contained in:
@ -95,6 +95,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
|
||||
#if (!defined (ACPI_NO_METHOD_EXECUTION) && !defined (ACPI_CONSTANT_EVAL_ONLY))
|
||||
|
||||
if (walk_state->walk_type & ACPI_WALK_METHOD_RESTART) {
|
||||
|
||||
/* We are restarting a preempted control method */
|
||||
|
||||
if (acpi_ps_has_completed_scope(parser_state)) {
|
||||
@ -143,6 +144,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
|
||||
ACPI_DEBUG_PRINT((ACPI_DB_PARSE,
|
||||
"Popped scope, Op=%p\n", op));
|
||||
} else if (walk_state->prev_op) {
|
||||
|
||||
/* We were in the middle of an op */
|
||||
|
||||
op = walk_state->prev_op;
|
||||
@ -156,6 +158,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
|
||||
while ((parser_state->aml < parser_state->aml_end) || (op)) {
|
||||
aml_op_start = parser_state->aml;
|
||||
if (!op) {
|
||||
|
||||
/* Get the next opcode from the AML stream */
|
||||
|
||||
walk_state->aml_offset =
|
||||
@ -213,6 +216,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
|
||||
/* Create Op structure and append to parent's argument list */
|
||||
|
||||
if (walk_state->op_info->flags & AML_NAMED) {
|
||||
|
||||
/* Allocate a new pre_op if necessary */
|
||||
|
||||
if (!pre_op) {
|
||||
@ -388,6 +392,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
|
||||
/* Are there any arguments that must be processed? */
|
||||
|
||||
if (walk_state->arg_types) {
|
||||
|
||||
/* Get arguments */
|
||||
|
||||
switch (op->common.aml_opcode) {
|
||||
@ -853,6 +858,7 @@ acpi_status acpi_ps_parse_loop(struct acpi_walk_state *walk_state)
|
||||
}
|
||||
|
||||
else if (ACPI_FAILURE(status)) {
|
||||
|
||||
/* First error is most important */
|
||||
|
||||
(void)
|
||||
|
Reference in New Issue
Block a user