ACPICA: Enable auto-serialization as a default kernel behavior.
authorLv Zheng <lv.zheng@intel.com>
Mon, 24 Mar 2014 06:49:22 +0000 (14:49 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 26 Mar 2014 15:26:00 +0000 (16:26 +0100)
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>
Documentation/kernel-parameters.txt
drivers/acpi/acpica/acglobal.h
drivers/acpi/osl.c

index a159537..91f0be8 100644 (file)
@@ -229,13 +229,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
                        use by PCI
                        Format: <irq>,<irq>...
 
-       acpi_auto_serialize     [HW,ACPI]
-                       Enable auto-serialization of AML methods
+       acpi_no_auto_serialize  [HW,ACPI]
+                       Disable auto-serialization of AML methods
                        AML control methods that contain the opcodes to create
                        named objects will be marked as "Serialized" by the
                        auto-serialization feature.
-                       This feature is disabled by default.
-                       This option allows to turn on the feature.
+                       This feature is enabled by default.
+                       This option allows to turn off the feature.
 
        acpi_no_auto_ssdt       [HW,ACPI] Disable automatic loading of SSDT
 
index ea0f838..49bbc71 100644 (file)
@@ -99,7 +99,7 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_enable_interpreter_slack, FALSE);
  * 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);
+ACPI_INIT_GLOBAL(u8, acpi_gbl_auto_serialize_methods, TRUE);
 
 /*
  * Create the predefined _OSI method in the namespace? Default is TRUE
index 74a160c..a3109ff 100644 (file)
@@ -1540,20 +1540,20 @@ static int __init osi_setup(char *str)
 __setup("acpi_osi=", osi_setup);
 
 /*
- * Enable the auto-serialization of named objects creation methods.
+ * Disable the auto-serialization of named objects creation methods.
  *
- * This feature is disabled by default.  It marks the AML control methods
+ * This feature is enabled by default.  It marks the AML control methods
  * that contain the opcodes to create named objects as "Serialized".
  */
-static int __init acpi_auto_serialize_setup(char *str)
+static int __init acpi_no_auto_serialize_setup(char *str)
 {
-       acpi_gbl_auto_serialize_methods = TRUE;
-       pr_info("ACPI: auto-serialization enabled\n");
+       acpi_gbl_auto_serialize_methods = FALSE;
+       pr_info("ACPI: auto-serialization disabled\n");
 
        return 1;
 }
 
-__setup("acpi_auto_serialize", acpi_auto_serialize_setup);
+__setup("acpi_no_auto_serialize", acpi_no_auto_serialize_setup);
 
 /* Check of resource interference between native drivers and ACPI
  * OperationRegions (SystemIO and System Memory only).