diff options
author | Bob Moore <robert.moore@intel.com> | 2005-12-02 18:27:00 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-12-10 00:29:11 -0500 |
commit | 28f55ebce5bd2fceec8adc7c8860953d3e4532a8 (patch) | |
tree | 2c5c10c18e51f9a717514dfccdc287fc517730c6 /drivers/acpi/utilities/utglobal.c | |
parent | c51a4de85de720670f2fbc592a6f8040af72ad87 (diff) |
[ACPI] ACPICA 20051202
Modified the parsing of control methods to no longer
create namespace objects during the first pass of the
parse. Objects are now created only during the execute
phase, at the moment the namespace creation operator
is encountered in the AML (Name, OperationRegion,
CreateByteField, etc.) This should eliminate ALREADY_EXISTS
exceptions seen on some machines where reentrant control
methods are protected by an AML mutex. The mutex will now
correctly block multiple threads from attempting to create
the same object more than once.
Increased the number of available Owner Ids for namespace
object tracking from 32 to 255. This should eliminate the
OWNER_ID_LIMIT exceptions seen on some machines with a
large number of ACPI tables (either static or dynamic).
Enhanced the namespace dump routine to output the owner
ID for each namespace object.
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/utilities/utglobal.c')
-rw-r--r-- | drivers/acpi/utilities/utglobal.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/acpi/utilities/utglobal.c b/drivers/acpi/utilities/utglobal.c index d6813d88a104..6828c7aefa8a 100644 --- a/drivers/acpi/utilities/utglobal.c +++ b/drivers/acpi/utilities/utglobal.c | |||
@@ -793,6 +793,11 @@ void acpi_ut_init_globals(void) | |||
793 | acpi_gbl_mutex_info[i].use_count = 0; | 793 | acpi_gbl_mutex_info[i].use_count = 0; |
794 | } | 794 | } |
795 | 795 | ||
796 | for (i = 0; i < ACPI_NUM_OWNERID_MASKS; i++) { | ||
797 | acpi_gbl_owner_id_mask[i] = 0; | ||
798 | } | ||
799 | acpi_gbl_owner_id_mask[ACPI_NUM_OWNERID_MASKS - 1] = 0x80000000; /* Last ID is never valid */ | ||
800 | |||
796 | /* GPE support */ | 801 | /* GPE support */ |
797 | 802 | ||
798 | acpi_gbl_gpe_xrupt_list_head = NULL; | 803 | acpi_gbl_gpe_xrupt_list_head = NULL; |
@@ -830,8 +835,8 @@ void acpi_ut_init_globals(void) | |||
830 | acpi_gbl_ns_lookup_count = 0; | 835 | acpi_gbl_ns_lookup_count = 0; |
831 | acpi_gbl_ps_find_count = 0; | 836 | acpi_gbl_ps_find_count = 0; |
832 | acpi_gbl_acpi_hardware_present = TRUE; | 837 | acpi_gbl_acpi_hardware_present = TRUE; |
833 | acpi_gbl_owner_id_mask = 0; | 838 | acpi_gbl_last_owner_id_index = 0; |
834 | acpi_gbl_last_owner_id = 0; | 839 | acpi_gbl_next_owner_id_offset = 0; |
835 | acpi_gbl_trace_method_name = 0; | 840 | acpi_gbl_trace_method_name = 0; |
836 | acpi_gbl_trace_dbg_level = 0; | 841 | acpi_gbl_trace_dbg_level = 0; |
837 | acpi_gbl_trace_dbg_layer = 0; | 842 | acpi_gbl_trace_dbg_layer = 0; |