aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/parser/psloop.c
diff options
context:
space:
mode:
authorRobert Moore <robert.moore@intel.com>2005-07-29 18:15:00 -0400
committerLen Brown <len.brown@intel.com>2005-07-30 00:51:39 -0400
commit0c9938cc75057c0fca1af55a55dcfc2842436695 (patch)
treed18e809bf9e3811f20c609b6515d4d1b8520cfbc /drivers/acpi/parser/psloop.c
parentdd8f39bbf5154cdbfd698fc70c66faba33eafa44 (diff)
[ACPI] ACPICA 20050729 from Bob Moore
Implemented support to ignore an attempt to install/load a particular ACPI table more than once. Apparently there exists BIOS code that repeatedly attempts to load the same SSDT upon certain events. Thanks to Venkatesh Pallipadi. Restructured the main interface to the AML parser in order to correctly handle all exceptional conditions. This will prevent leakage of the OwnerId resource and should eliminate the AE_OWNER_ID_LIMIT exceptions seen on some machines. Thanks to Alexey Starikovskiy. Support for "module level code" has been disabled in this version due to a number of issues that have appeared on various machines. The support can be enabled by defining ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem compilation. When the issues are fully resolved, the code will be enabled by default again. Modified the internal functions for debug print support to define the FunctionName parameter as a (const char *) for compatibility with compiler built-in macros such as __FUNCTION__, etc. Linted the entire ACPICA source tree for both 32-bit and 64-bit. Signed-off-by: Robert Moore <robert.moore@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/parser/psloop.c')
-rw-r--r--drivers/acpi/parser/psloop.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/acpi/parser/psloop.c b/drivers/acpi/parser/psloop.c
index edf8aa5f86ca..551d54bdbec3 100644
--- a/drivers/acpi/parser/psloop.c
+++ b/drivers/acpi/parser/psloop.c
@@ -55,8 +55,6 @@
55#include <acpi/acparser.h> 55#include <acpi/acparser.h>
56#include <acpi/acdispat.h> 56#include <acpi/acdispat.h>
57#include <acpi/amlcode.h> 57#include <acpi/amlcode.h>
58#include <acpi/acnamesp.h>
59#include <acpi/acinterp.h>
60 58
61#define _COMPONENT ACPI_PARSER 59#define _COMPONENT ACPI_PARSER
62 ACPI_MODULE_NAME ("psloop") 60 ACPI_MODULE_NAME ("psloop")
@@ -410,11 +408,9 @@ acpi_ps_parse_loop (
410 408
411 /* Special processing for certain opcodes */ 409 /* Special processing for certain opcodes */
412 410
413#define ACPI_NO_MODULE_LEVEL_CODE
414
415 /* TBD (remove): Temporary mechanism to disable this code if needed */ 411 /* TBD (remove): Temporary mechanism to disable this code if needed */
416 412
417#ifndef ACPI_NO_MODULE_LEVEL_CODE 413#ifdef ACPI_ENABLE_MODULE_LEVEL_CODE
418 414
419 if ((walk_state->pass_number <= ACPI_IMODE_LOAD_PASS1) && 415 if ((walk_state->pass_number <= ACPI_IMODE_LOAD_PASS1) &&
420 ((walk_state->parse_flags & ACPI_PARSE_DISASSEMBLE) == 0)) { 416 ((walk_state->parse_flags & ACPI_PARSE_DISASSEMBLE) == 0)) {
@@ -431,6 +427,9 @@ acpi_ps_parse_loop (
431 case AML_ELSE_OP: 427 case AML_ELSE_OP:
432 case AML_WHILE_OP: 428 case AML_WHILE_OP:
433 429
430 ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
431 "Pass1: Skipping an If/Else/While body\n"));
432
434 /* Skip body of if/else/while in pass 1 */ 433 /* Skip body of if/else/while in pass 1 */
435 434
436 parser_state->aml = parser_state->pkg_end; 435 parser_state->aml = parser_state->pkg_end;