diff options
author | Len Brown <len.brown@intel.com> | 2007-03-15 04:10:36 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-03-15 04:10:36 -0400 |
commit | a8f4af6dc6600980885c594f52eecd60edd62013 (patch) | |
tree | 818ff31a6fddaefc0a861cf967bb0120029f5fa3 /drivers/acpi/executer/exsystem.c | |
parent | 4e337adae4e960f64043b9f433c4a825c902616c (diff) |
ACPICA: revert "acpi_serialize" changes
This reverts 977a6226feae3e2c10a4d8227625ff0f04b49239
and reverts 1ba753acb372c2955a4843302e92e49ce82e2fea
and updates acpi_ev_queue_notify_request()
to restore the previous implementation of the
"acpi_serialize" workaround.
http://bugzilla.kernel.org/show_bug.cgi?id=8171
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/executer/exsystem.c')
-rw-r--r-- | drivers/acpi/executer/exsystem.c | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/drivers/acpi/executer/exsystem.c b/drivers/acpi/executer/exsystem.c index 9460baff3032..b2edf620ba89 100644 --- a/drivers/acpi/executer/exsystem.c +++ b/drivers/acpi/executer/exsystem.c | |||
@@ -66,6 +66,7 @@ ACPI_MODULE_NAME("exsystem") | |||
66 | acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) | 66 | acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) |
67 | { | 67 | { |
68 | acpi_status status; | 68 | acpi_status status; |
69 | acpi_status status2; | ||
69 | 70 | ||
70 | ACPI_FUNCTION_TRACE(ex_system_wait_semaphore); | 71 | ACPI_FUNCTION_TRACE(ex_system_wait_semaphore); |
71 | 72 | ||
@@ -78,7 +79,7 @@ acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) | |||
78 | 79 | ||
79 | /* We must wait, so unlock the interpreter */ | 80 | /* We must wait, so unlock the interpreter */ |
80 | 81 | ||
81 | acpi_ex_relinquish_interpreter(); | 82 | acpi_ex_exit_interpreter(); |
82 | 83 | ||
83 | status = acpi_os_wait_semaphore(semaphore, 1, timeout); | 84 | status = acpi_os_wait_semaphore(semaphore, 1, timeout); |
84 | 85 | ||
@@ -88,7 +89,13 @@ acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) | |||
88 | 89 | ||
89 | /* Reacquire the interpreter */ | 90 | /* Reacquire the interpreter */ |
90 | 91 | ||
91 | acpi_ex_reacquire_interpreter(); | 92 | status2 = acpi_ex_enter_interpreter(); |
93 | if (ACPI_FAILURE(status2)) { | ||
94 | |||
95 | /* Report fatal error, could not acquire interpreter */ | ||
96 | |||
97 | return_ACPI_STATUS(status2); | ||
98 | } | ||
92 | } | 99 | } |
93 | 100 | ||
94 | return_ACPI_STATUS(status); | 101 | return_ACPI_STATUS(status); |
@@ -112,6 +119,7 @@ acpi_status acpi_ex_system_wait_semaphore(acpi_semaphore semaphore, u16 timeout) | |||
112 | acpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout) | 119 | acpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout) |
113 | { | 120 | { |
114 | acpi_status status; | 121 | acpi_status status; |
122 | acpi_status status2; | ||
115 | 123 | ||
116 | ACPI_FUNCTION_TRACE(ex_system_wait_mutex); | 124 | ACPI_FUNCTION_TRACE(ex_system_wait_mutex); |
117 | 125 | ||
@@ -124,7 +132,7 @@ acpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout) | |||
124 | 132 | ||
125 | /* We must wait, so unlock the interpreter */ | 133 | /* We must wait, so unlock the interpreter */ |
126 | 134 | ||
127 | acpi_ex_relinquish_interpreter(); | 135 | acpi_ex_exit_interpreter(); |
128 | 136 | ||
129 | status = acpi_os_acquire_mutex(mutex, timeout); | 137 | status = acpi_os_acquire_mutex(mutex, timeout); |
130 | 138 | ||
@@ -134,7 +142,13 @@ acpi_status acpi_ex_system_wait_mutex(acpi_mutex mutex, u16 timeout) | |||
134 | 142 | ||
135 | /* Reacquire the interpreter */ | 143 | /* Reacquire the interpreter */ |
136 | 144 | ||
137 | acpi_ex_reacquire_interpreter(); | 145 | status2 = acpi_ex_enter_interpreter(); |
146 | if (ACPI_FAILURE(status2)) { | ||
147 | |||
148 | /* Report fatal error, could not acquire interpreter */ | ||
149 | |||
150 | return_ACPI_STATUS(status2); | ||
151 | } | ||
138 | } | 152 | } |
139 | 153 | ||
140 | return_ACPI_STATUS(status); | 154 | return_ACPI_STATUS(status); |
@@ -195,18 +209,20 @@ acpi_status acpi_ex_system_do_stall(u32 how_long) | |||
195 | 209 | ||
196 | acpi_status acpi_ex_system_do_suspend(acpi_integer how_long) | 210 | acpi_status acpi_ex_system_do_suspend(acpi_integer how_long) |
197 | { | 211 | { |
212 | acpi_status status; | ||
213 | |||
198 | ACPI_FUNCTION_ENTRY(); | 214 | ACPI_FUNCTION_ENTRY(); |
199 | 215 | ||
200 | /* Since this thread will sleep, we must release the interpreter */ | 216 | /* Since this thread will sleep, we must release the interpreter */ |
201 | 217 | ||
202 | acpi_ex_relinquish_interpreter(); | 218 | acpi_ex_exit_interpreter(); |
203 | 219 | ||
204 | acpi_os_sleep(how_long); | 220 | acpi_os_sleep(how_long); |
205 | 221 | ||
206 | /* And now we must get the interpreter again */ | 222 | /* And now we must get the interpreter again */ |
207 | 223 | ||
208 | acpi_ex_reacquire_interpreter(); | 224 | status = acpi_ex_enter_interpreter(); |
209 | return (AE_OK); | 225 | return (status); |
210 | } | 226 | } |
211 | 227 | ||
212 | /******************************************************************************* | 228 | /******************************************************************************* |