diff options
-rw-r--r-- | Documentation/kernel-parameters.txt | 2 | ||||
-rw-r--r-- | drivers/acpi/acpica/acglobal.h | 8 | ||||
-rw-r--r-- | drivers/acpi/acpica/acinterp.h | 4 | ||||
-rw-r--r-- | drivers/acpi/acpica/exsystem.c | 12 | ||||
-rw-r--r-- | drivers/acpi/acpica/exutils.c | 80 | ||||
-rw-r--r-- | drivers/acpi/osl.c | 12 | ||||
-rw-r--r-- | include/acpi/acpixf.h | 1 |
7 files changed, 16 insertions, 103 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index bf0fda0125f0..3eae32f34122 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -306,8 +306,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
306 | acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode | 306 | acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode |
307 | Format: { level | edge | high | low } | 307 | Format: { level | edge | high | low } |
308 | 308 | ||
309 | acpi_serialize [HW,ACPI] force serialization of AML methods | ||
310 | |||
311 | acpi_skip_timer_override [HW,ACPI] | 309 | acpi_skip_timer_override [HW,ACPI] |
312 | Recognize and ignore IRQ0/pin2 Interrupt Override. | 310 | Recognize and ignore IRQ0/pin2 Interrupt Override. |
313 | For broken nForce2 BIOS resulting in XT-PIC timer. | 311 | For broken nForce2 BIOS resulting in XT-PIC timer. |
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h index 8f40bb972ae3..767556cb1448 100644 --- a/drivers/acpi/acpica/acglobal.h +++ b/drivers/acpi/acpica/acglobal.h | |||
@@ -93,14 +93,6 @@ | |||
93 | ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpreter_slack, FALSE); | 93 | ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpreter_slack, FALSE); |
94 | 94 | ||
95 | /* | 95 | /* |
96 | * Automatically serialize ALL control methods? Default is FALSE, meaning | ||
97 | * to use the Serialized/not_serialized method flags on a per method basis. | ||
98 | * Only change this if the ASL code is poorly written and cannot handle | ||
99 | * reentrancy even though methods are marked "NotSerialized". | ||
100 | */ | ||
101 | ACPI_INIT_GLOBAL(u8, acpi_gbl_all_methods_serialized, FALSE); | ||
102 | |||
103 | /* | ||
104 | * Create the predefined _OSI method in the namespace? Default is TRUE | 96 | * Create the predefined _OSI method in the namespace? Default is TRUE |
105 | * because ACPI CA is fully compatible with other ACPI implementations. | 97 | * because ACPI CA is fully compatible with other ACPI implementations. |
106 | * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior. | 98 | * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior. |
diff --git a/drivers/acpi/acpica/acinterp.h b/drivers/acpi/acpica/acinterp.h index c54267748be5..b01f71ce0523 100644 --- a/drivers/acpi/acpica/acinterp.h +++ b/drivers/acpi/acpica/acinterp.h | |||
@@ -458,10 +458,6 @@ void acpi_ex_enter_interpreter(void); | |||
458 | 458 | ||
459 | void acpi_ex_exit_interpreter(void); | 459 | void acpi_ex_exit_interpreter(void); |
460 | 460 | ||
461 | void acpi_ex_reacquire_interpreter(void); | ||
462 | |||
463 | void acpi_ex_relinquish_interpreter(void); | ||
464 | |||
465 | u8 acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); | 461 | u8 acpi_ex_truncate_for32bit_table(union acpi_operand_object *obj_desc); |
466 | 462 | ||
467 | void acpi_ex_acquire_global_lock(u32 rule); | 463 | void acpi_ex_acquire_global_lock(u32 rule); |
diff --git a/drivers/acpi/acpica/exsystem.c b/drivers/acpi/acpica/exsystem.c index 841caed11c08..f7da64123ed5 100644 --- a/drivers/acpi/acpica/exsystem.c +++ b/drivers/acpi/acpica/exsystem.c | |||
@@ -77,7 +77,7 @@ acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) | |||
77 | 77 | ||
78 | /* We must wait, so unlock the interpreter */ | 78 | /* We must wait, so unlock the interpreter */ |
79 | 79 | ||
80 | acpi_ex_relinquish_interpreter(); | 80 | acpi_ex_exit_interpreter(); |
81 | 81 | ||
82 | status = acpi_os_wait_semaphore(semaphore, 1, timeout); | 82 | status = acpi_os_wait_semaphore(semaphore, 1, timeout); |
83 | 83 | ||
@@ -87,7 +87,7 @@ acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) | |||
87 | 87 | ||
88 | /* Reacquire the interpreter */ | 88 | /* Reacquire the interpreter */ |
89 | 89 | ||
90 | acpi_ex_reacquire_interpreter(); | 90 | acpi_ex_enter_interpreter(); |
91 | } | 91 | } |
92 | 92 | ||
93 | return_ACPI_STATUS(status); | 93 | return_ACPI_STATUS(status); |
@@ -123,7 +123,7 @@ acpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout) | |||
123 | 123 | ||
124 | /* We must wait, so unlock the interpreter */ | 124 | /* We must wait, so unlock the interpreter */ |
125 | 125 | ||
126 | acpi_ex_relinquish_interpreter(); | 126 | acpi_ex_exit_interpreter(); |
127 | 127 | ||
128 | status = acpi_os_acquire_mutex(mutex, timeout); | 128 | status = acpi_os_acquire_mutex(mutex, timeout); |
129 | 129 | ||
@@ -133,7 +133,7 @@ acpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout) | |||
133 | 133 | ||
134 | /* Reacquire the interpreter */ | 134 | /* Reacquire the interpreter */ |
135 | 135 | ||
136 | acpi_ex_reacquire_interpreter(); | 136 | acpi_ex_enter_interpreter(); |
137 | } | 137 | } |
138 | 138 | ||
139 | return_ACPI_STATUS(status); | 139 | return_ACPI_STATUS(status); |
@@ -198,7 +198,7 @@ acpi_status acpi_ex_system_do_sleep(u64 how_long) | |||
198 | 198 | ||
199 | /* Since this thread will sleep, we must release the interpreter */ | 199 | /* Since this thread will sleep, we must release the interpreter */ |
200 | 200 | ||
201 | acpi_ex_relinquish_interpreter(); | 201 | acpi_ex_exit_interpreter(); |
202 | 202 | ||
203 | /* | 203 | /* |
204 | * For compatibility with other ACPI implementations and to prevent | 204 | * For compatibility with other ACPI implementations and to prevent |
@@ -212,7 +212,7 @@ acpi_status acpi_ex_system_do_sleep(u64 how_long) | |||
212 | 212 | ||
213 | /* And now we must get the interpreter again */ | 213 | /* And now we must get the interpreter again */ |
214 | 214 | ||
215 | acpi_ex_reacquire_interpreter(); | 215 | acpi_ex_enter_interpreter(); |
216 | return (AE_OK); | 216 | return (AE_OK); |
217 | } | 217 | } |
218 | 218 | ||
diff --git a/drivers/acpi/acpica/exutils.c b/drivers/acpi/acpica/exutils.c index 5b16c5484bee..d9d72dff2a76 100644 --- a/drivers/acpi/acpica/exutils.c +++ b/drivers/acpi/acpica/exutils.c | |||
@@ -100,37 +100,6 @@ void acpi_ex_enter_interpreter(void) | |||
100 | 100 | ||
101 | /******************************************************************************* | 101 | /******************************************************************************* |
102 | * | 102 | * |
103 | * FUNCTION: acpi_ex_reacquire_interpreter | ||
104 | * | ||
105 | * PARAMETERS: None | ||
106 | * | ||
107 | * RETURN: None | ||
108 | * | ||
109 | * DESCRIPTION: Reacquire the interpreter execution region from within the | ||
110 | * interpreter code. Failure to enter the interpreter region is a | ||
111 | * fatal system error. Used in conjunction with | ||
112 | * relinquish_interpreter | ||
113 | * | ||
114 | ******************************************************************************/ | ||
115 | |||
116 | void acpi_ex_reacquire_interpreter(void) | ||
117 | { | ||
118 | ACPI_FUNCTION_TRACE(ex_reacquire_interpreter); | ||
119 | |||
120 | /* | ||
121 | * If the global serialized flag is set, do not release the interpreter, | ||
122 | * since it was not actually released by acpi_ex_relinquish_interpreter. | ||
123 | * This forces the interpreter to be single threaded. | ||
124 | */ | ||
125 | if (!acpi_gbl_all_methods_serialized) { | ||
126 | acpi_ex_enter_interpreter(); | ||
127 | } | ||
128 | |||
129 | return_VOID; | ||
130 | } | ||
131 | |||
132 | /******************************************************************************* | ||
133 | * | ||
134 | * FUNCTION: acpi_ex_exit_interpreter | 103 | * FUNCTION: acpi_ex_exit_interpreter |
135 | * | 104 | * |
136 | * PARAMETERS: None | 105 | * PARAMETERS: None |
@@ -139,7 +108,16 @@ void acpi_ex_reacquire_interpreter(void) | |||
139 | * | 108 | * |
140 | * DESCRIPTION: Exit the interpreter execution region. This is the top level | 109 | * DESCRIPTION: Exit the interpreter execution region. This is the top level |
141 | * routine used to exit the interpreter when all processing has | 110 | * routine used to exit the interpreter when all processing has |
142 | * been completed. | 111 | * been completed, or when the method blocks. |
112 | * | ||
113 | * Cases where the interpreter is unlocked internally: | ||
114 | * 1) Method will be blocked on a Sleep() AML opcode | ||
115 | * 2) Method will be blocked on an Acquire() AML opcode | ||
116 | * 3) Method will be blocked on a Wait() AML opcode | ||
117 | * 4) Method will be blocked to acquire the global lock | ||
118 | * 5) Method will be blocked waiting to execute a serialized control | ||
119 | * method that is currently executing | ||
120 | * 6) About to invoke a user-installed opregion handler | ||
143 | * | 121 | * |
144 | ******************************************************************************/ | 122 | ******************************************************************************/ |
145 | 123 | ||
@@ -160,44 +138,6 @@ void acpi_ex_exit_interpreter(void) | |||
160 | 138 | ||
161 | /******************************************************************************* | 139 | /******************************************************************************* |
162 | * | 140 | * |
163 | * FUNCTION: acpi_ex_relinquish_interpreter | ||
164 | * | ||
165 | * PARAMETERS: None | ||
166 | * | ||
167 | * RETURN: None | ||
168 | * | ||
169 | * DESCRIPTION: Exit the interpreter execution region, from within the | ||
170 | * interpreter - before attempting an operation that will possibly | ||
171 | * block the running thread. | ||
172 | * | ||
173 | * Cases where the interpreter is unlocked internally | ||
174 | * 1) Method to be blocked on a Sleep() AML opcode | ||
175 | * 2) Method to be blocked on an Acquire() AML opcode | ||
176 | * 3) Method to be blocked on a Wait() AML opcode | ||
177 | * 4) Method to be blocked to acquire the global lock | ||
178 | * 5) Method to be blocked waiting to execute a serialized control method | ||
179 | * that is currently executing | ||
180 | * 6) About to invoke a user-installed opregion handler | ||
181 | * | ||
182 | ******************************************************************************/ | ||
183 | |||
184 | void acpi_ex_relinquish_interpreter(void) | ||
185 | { | ||
186 | ACPI_FUNCTION_TRACE(ex_relinquish_interpreter); | ||
187 | |||
188 | /* | ||
189 | * If the global serialized flag is set, do not release the interpreter. | ||
190 | * This forces the interpreter to be single threaded. | ||
191 | */ | ||
192 | if (!acpi_gbl_all_methods_serialized) { | ||
193 | acpi_ex_exit_interpreter(); | ||
194 | } | ||
195 | |||
196 | return_VOID; | ||
197 | } | ||
198 | |||
199 | /******************************************************************************* | ||
200 | * | ||
201 | * FUNCTION: acpi_ex_truncate_for32bit_table | 141 | * FUNCTION: acpi_ex_truncate_for32bit_table |
202 | * | 142 | * |
203 | * PARAMETERS: obj_desc - Object to be truncated | 143 | * PARAMETERS: obj_desc - Object to be truncated |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 0d7b7145399e..b7af3b758f32 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -1539,18 +1539,6 @@ static int __init osi_setup(char *str) | |||
1539 | 1539 | ||
1540 | __setup("acpi_osi=", osi_setup); | 1540 | __setup("acpi_osi=", osi_setup); |
1541 | 1541 | ||
1542 | /* enable serialization to combat AE_ALREADY_EXISTS errors */ | ||
1543 | static int __init acpi_serialize_setup(char *str) | ||
1544 | { | ||
1545 | printk(KERN_INFO PREFIX "serialize enabled\n"); | ||
1546 | |||
1547 | acpi_gbl_all_methods_serialized = TRUE; | ||
1548 | |||
1549 | return 1; | ||
1550 | } | ||
1551 | |||
1552 | __setup("acpi_serialize", acpi_serialize_setup); | ||
1553 | |||
1554 | /* Check of resource interference between native drivers and ACPI | 1542 | /* Check of resource interference between native drivers and ACPI |
1555 | * OperationRegions (SystemIO and System Memory only). | 1543 | * OperationRegions (SystemIO and System Memory only). |
1556 | * IO ports and memory declared in ACPI might be used by the ACPI subsystem | 1544 | * IO ports and memory declared in ACPI might be used by the ACPI subsystem |
diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index e04f0114283f..a3a8dae1cd61 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h | |||
@@ -71,7 +71,6 @@ extern u32 acpi_dbg_layer; | |||
71 | 71 | ||
72 | /* ACPICA runtime options */ | 72 | /* ACPICA runtime options */ |
73 | 73 | ||
74 | extern u8 acpi_gbl_all_methods_serialized; | ||
75 | extern u8 acpi_gbl_copy_dsdt_locally; | 74 | extern u8 acpi_gbl_copy_dsdt_locally; |
76 | extern u8 acpi_gbl_create_osi_method; | 75 | extern u8 acpi_gbl_create_osi_method; |
77 | extern u8 acpi_gbl_disable_auto_repair; | 76 | extern u8 acpi_gbl_disable_auto_repair; |