summaryrefslogtreecommitdiffstats
path: root/drivers/acpi/events/evxface.c
diff options
context:
space:
mode:
authorBob Moore2007-02-02 17:48:20 +0100
committerLen Brown2007-02-03 03:14:24 +0100
commit1ba753acb372c2955a4843302e92e49ce82e2fea (patch)
tree13dbe3af585f835c7d9cdf41fae505a7df4e8620 /drivers/acpi/events/evxface.c
parentACPICA: Create tbfadt.c to hold all FADT-related functions (diff)
downloadkernel-qcow2-linux-1ba753acb372c2955a4843302e92e49ce82e2fea.tar.gz
kernel-qcow2-linux-1ba753acb372c2955a4843302e92e49ce82e2fea.tar.xz
kernel-qcow2-linux-1ba753acb372c2955a4843302e92e49ce82e2fea.zip
ACPICA: Re-implement interpreters' "serialized mode"
Enhanced the implementation of the interpreters' serialized mode (boot with "acpi_serialize" to set acpi_glb_all_methods_serialized flag.) When this mode is specified, instead of creating a serialization semaphore per control method, the interpreter lock is simply no longer released before a blocking operation during control method execution. This effectively makes the AML Interpreter single-threaded. The overhead of a semaphore per-method is eliminated. Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/events/evxface.c')
-rw-r--r--drivers/acpi/events/evxface.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/acpi/events/evxface.c b/drivers/acpi/events/evxface.c
index 923fd2b46955..a2af48ed88cd 100644
--- a/drivers/acpi/events/evxface.c
+++ b/drivers/acpi/events/evxface.c
@@ -768,11 +768,9 @@ acpi_status acpi_acquire_global_lock(u16 timeout, u32 * handle)
return (AE_BAD_PARAMETER);
}
- status = acpi_ex_enter_interpreter();
- if (ACPI_FAILURE(status)) {
- return (status);
- }
+ /* Must lock interpreter to prevent race conditions */
+ acpi_ex_enter_interpreter();
status = acpi_ev_acquire_global_lock(timeout);
acpi_ex_exit_interpreter();