diff options
author | Bob Moore <robert.moore@intel.com> | 2014-03-24 14:49:00 +0800 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-03-26 16:25:59 +0100 |
commit | 22b5afce6a0f29f995b0cce83a5033892dd306d8 (patch) | |
tree | 5733ad0071177f398108a8932b7d7108bd74c4ca /drivers/acpi/acpica/acglobal.h | |
parent | e2b8ddcc6b3fbb860e15c5d52455735e128326aa (diff) | |
download | blackbird-op-linux-22b5afce6a0f29f995b0cce83a5033892dd306d8.tar.gz blackbird-op-linux-22b5afce6a0f29f995b0cce83a5033892dd306d8.zip |
ACPICA: Add auto-serialization support for ill-behaved control methods.
This change adds support to automatically mark a control method as
"serialized" if the method creates any named objects. This will
positively prevent the method from being entered by more than one
thread and thus preventing a possible abort when an attempt is
made to create an object twice.
Implemented by parsing all non-serialize control methods at table
load time.
This feature is disabled by default and this patch also adds a new
Linux kernel parameter "acpi_auto_serialize" to allow this feature
to be turned on for a specific boot.
References: https://bugzilla.kernel.org/show_bug.cgi?id=52191
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/acpica/acglobal.h')
-rw-r--r-- | drivers/acpi/acpica/acglobal.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h index 767556cb1448..ea0f8389ccde 100644 --- a/drivers/acpi/acpica/acglobal.h +++ b/drivers/acpi/acpica/acglobal.h @@ -93,6 +93,15 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpreter_slack, FALSE); /* + * Automatically serialize all methods that create named objects? Default + * is TRUE, meaning that all non_serialized methods are scanned once at + * table load time to determine those that create named objects. Methods + * that create named objects are marked Serialized in order to prevent + * possible run-time problems if they are entered by more than one thread. + */ +ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_methods, FALSE); + +/* * Create the predefined _OSI method in the namespace? Default is TRUE * because ACPI CA is fully compatible with other ACPI implementations. * Changing this will revert ACPI CA (and machine ASL) to pre-OSI behavior. |