Commit 08e1d7c0290aaef6bc6d68be8df753ffec02a6ae

Authored by Lv Zheng
Committed by Rafael J. Wysocki
1 parent d18255795b

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>

Showing 3 changed files with 11 additions and 11 deletions Side-by-side Diff

Documentation/kernel-parameters.txt
... ... @@ -229,13 +229,13 @@
229 229 use by PCI
230 230 Format: <irq>,<irq>...
231 231  
232   - acpi_auto_serialize [HW,ACPI]
233   - Enable auto-serialization of AML methods
  232 + acpi_no_auto_serialize [HW,ACPI]
  233 + Disable auto-serialization of AML methods
234 234 AML control methods that contain the opcodes to create
235 235 named objects will be marked as "Serialized" by the
236 236 auto-serialization feature.
237   - This feature is disabled by default.
238   - This option allows to turn on the feature.
  237 + This feature is enabled by default.
  238 + This option allows to turn off the feature.
239 239  
240 240 acpi_no_auto_ssdt [HW,ACPI] Disable automatic loading of SSDT
241 241  
drivers/acpi/acpica/acglobal.h
... ... @@ -99,7 +99,7 @@
99 99 * that create named objects are marked Serialized in order to prevent
100 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 105 * Create the predefined _OSI method in the namespace? Default is TRUE
... ... @@ -1540,20 +1540,20 @@
1540 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 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;
1551   - pr_info("ACPI: auto-serialization enabled\n");
  1550 + acpi_gbl_auto_serialize_methods = FALSE;
  1551 + pr_info("ACPI: auto-serialization disabled\n");
1552 1552  
1553 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 1558 /* Check of resource interference between native drivers and ACPI
1559 1559 * OperationRegions (SystemIO and System Memory only).