diff options
author | Lv Zheng <lv.zheng@intel.com> | 2014-03-24 02:49:22 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-03-26 11:26:00 -0400 |
commit | 08e1d7c0290aaef6bc6d68be8df753ffec02a6ae (patch) | |
tree | b010d6b9ce270fa2c4e210534580378b5f1c11a7 | |
parent | d18255795bf98b3f25dbc5334b8a615943c3dcca (diff) |
ACPICA: Enable auto-serialization as a default kernel behavior.
The previous commit "ACPICA: Add auto-serialization support for ill-behaved
control methods" introduced the auto-serialization facility as a workaround
that can be enabled by "acpi_auto_serialize":
This feature marks control methods that create named objects as "serialized"
to avoid unwanted AE_ALREADY_EXISTS control method evaluation failures.
Enable method auto-serialization as the default kernel behavior. The new kernel
parameter is also changed from "acpi_auto_serialize" to "acpi_no_auto_serialize"
to reflect the default behavior.
References: https://bugzilla.kernel.org/show_bug.cgi?id=52191
References: http://www.spinics.net/lists/linux-acpi/msg49496.html
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r-- | Documentation/kernel-parameters.txt | 8 | ||||
-rw-r--r-- | drivers/acpi/acpica/acglobal.h | 2 | ||||
-rw-r--r-- | drivers/acpi/osl.c | 12 |
3 files changed, 11 insertions, 11 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index a159537ea880..91f0be8555f5 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -229,13 +229,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
229 | use by PCI | 229 | use by PCI |
230 | Format: <irq>,<irq>... | 230 | Format: <irq>,<irq>... |
231 | 231 | ||
232 | acpi_auto_serialize [HW,ACPI] | 232 | acpi_no_auto_serialize [HW,ACPI] |
233 | Enable auto-serialization of AML methods | 233 | Disable auto-serialization of AML methods |
234 | AML control methods that contain the opcodes to create | 234 | AML control methods that contain the opcodes to create |
235 | named objects will be marked as "Serialized" by the | 235 | named objects will be marked as "Serialized" by the |
236 | auto-serialization feature. | 236 | auto-serialization feature. |
237 | This feature is disabled by default. | 237 | This feature is enabled by default. |
238 | This option allows to turn on the feature. | 238 | This option allows to turn off the feature. |
239 | 239 | ||
240 | acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT | 240 | acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT |
241 | 241 | ||
diff --git a/drivers/acpi/acpica/acglobal.h b/drivers/acpi/acpica/acglobal.h index ea0f8389ccde..49bbc71fad54 100644 --- a/drivers/acpi/acpica/acglobal.h +++ b/drivers/acpi/acpica/acglobal.h | |||
@@ -99,7 +99,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpreter_slack, FALSE); | |||
99 | * that create named objects are marked Serialized in order to prevent | 99 | * that create named objects are marked Serialized in order to prevent |
100 | * possible run-time problems if they are entered by more than one thread. | 100 | * possible run-time problems if they are entered by more than one thread. |
101 | */ | 101 | */ |
102 | ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_methods, FALSE); | 102 | ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_methods, TRUE); |
103 | 103 | ||
104 | /* | 104 | /* |
105 | * Create the predefined _OSI method in the namespace? Default is TRUE | 105 | * Create the predefined _OSI method in the namespace? Default is TRUE |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 74a160cf85b9..a3109ffcfa98 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -1540,20 +1540,20 @@ static int __init osi_setup(char *str) | |||
1540 | __setup("acpi_osi=", osi_setup); | 1540 | __setup("acpi_osi=", osi_setup); |
1541 | 1541 | ||
1542 | /* | 1542 | /* |
1543 | * Enable the auto-serialization of named objects creation methods. | 1543 | * Disable the auto-serialization of named objects creation methods. |
1544 | * | 1544 | * |
1545 | * This feature is disabled by default. It marks the AML control methods | 1545 | * This feature is enabled by default. It marks the AML control methods |
1546 | * that contain the opcodes to create named objects as "Serialized". | 1546 | * that contain the opcodes to create named objects as "Serialized". |
1547 | */ | 1547 | */ |
1548 | static int __init acpi_auto_serialize_setup(char *str) | 1548 | static int __init acpi_no_auto_serialize_setup(char *str) |
1549 | { | 1549 | { |
1550 | acpi_gbl_auto_serialize_methods = TRUE; | 1550 | acpi_gbl_auto_serialize_methods = FALSE; |
1551 | pr_info("ACPI: auto-serialization enabled\n"); | 1551 | pr_info("ACPI: auto-serialization disabled\n"); |
1552 | 1552 | ||
1553 | return 1; | 1553 | return 1; |
1554 | } | 1554 | } |
1555 | 1555 | ||
1556 | __setup("acpi_auto_serialize", acpi_auto_serialize_setup); | 1556 | __setup("acpi_no_auto_serialize", acpi_no_auto_serialize_setup); |
1557 | 1557 | ||
1558 | /* Check of resource interference between native drivers and ACPI | 1558 | /* Check of resource interference between native drivers and ACPI |
1559 | * OperationRegions (SystemIO and System Memory only). | 1559 | * OperationRegions (SystemIO and System Memory only). |