[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:
@@ -275,6 +275,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
|
||||
*/
|
||||
if (ACPI_SUCCESS(status) &&
|
||||
possible_method_call && (node->type == ACPI_TYPE_METHOD)) {
|
||||
|
||||
/* This name is actually a control method invocation */
|
||||
|
||||
method_desc = acpi_ns_get_attached_object(node);
|
||||
@@ -319,6 +320,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
|
||||
* some not_found cases are allowed
|
||||
*/
|
||||
if (status == AE_NOT_FOUND) {
|
||||
|
||||
/* 1) not_found is ok during load pass 1/2 (allow forward references) */
|
||||
|
||||
if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) !=
|
||||
@@ -354,6 +356,7 @@ acpi_ps_get_next_namepath(struct acpi_walk_state *walk_state,
|
||||
|
||||
if ((walk_state->parse_flags & ACPI_PARSE_MODE_MASK) ==
|
||||
ACPI_PARSE_EXECUTE) {
|
||||
|
||||
/* Report a control method execution error */
|
||||
|
||||
status = acpi_ds_method_error(status, walk_state);
|
||||
@@ -620,6 +623,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
|
||||
case ARGP_FIELDLIST:
|
||||
|
||||
if (parser_state->aml < parser_state->pkg_end) {
|
||||
|
||||
/* Non-empty list */
|
||||
|
||||
while (parser_state->aml < parser_state->pkg_end) {
|
||||
@@ -645,6 +649,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
|
||||
case ARGP_BYTELIST:
|
||||
|
||||
if (parser_state->aml < parser_state->pkg_end) {
|
||||
|
||||
/* Non-empty list */
|
||||
|
||||
arg = acpi_ps_alloc_op(AML_INT_BYTELIST_OP);
|
||||
@@ -673,6 +678,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
|
||||
if (subop == 0 ||
|
||||
acpi_ps_is_leading_char(subop) ||
|
||||
acpi_ps_is_prefix_char(subop)) {
|
||||
|
||||
/* null_name or name_string */
|
||||
|
||||
arg = acpi_ps_alloc_op(AML_INT_NAMEPATH_OP);
|
||||
@@ -703,6 +709,7 @@ acpi_ps_get_next_arg(struct acpi_walk_state *walk_state,
|
||||
case ARGP_OBJLIST:
|
||||
|
||||
if (parser_state->aml < parser_state->pkg_end) {
|
||||
|
||||
/* Non-empty list of variable arguments, nothing returned */
|
||||
|
||||
walk_state->arg_count = ACPI_VAR_ARGS;
|
||||
|
Reference in New Issue
Block a user