aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/utilities/utglobal.c
diff options
context:
space:
mode:
authorBob Moore <robert.moore@intel.com>2005-12-02 18:27:00 -0500
committerLen Brown <len.brown@intel.com>2005-12-10 00:29:11 -0500
commit28f55ebce5bd2fceec8adc7c8860953d3e4532a8 (patch)
tree2c5c10c18e51f9a717514dfccdc287fc517730c6 /drivers/acpi/utilities/utglobal.c
parentc51a4de85de720670f2fbc592a6f8040af72ad87 (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.c9
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;