Browse Source

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>
Lv Zheng 11 years ago
parent
commit
08e1d7c029
3 changed files with 11 additions and 11 deletions
  1. 4 4
      Documentation/kernel-parameters.txt
  2. 1 1
      drivers/acpi/acpica/acglobal.h
  3. 6 6
      drivers/acpi/osl.c

+ 4 - 4
Documentation/kernel-parameters.txt

@@ -229,13 +229,13 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
 			use by PCI
 			use by PCI
 			Format: <irq>,<irq>...
 			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
 			AML control methods that contain the opcodes to create
 			named objects will be marked as "Serialized" by the
 			named objects will be marked as "Serialized" by the
 			auto-serialization feature.
 			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
 	acpi_no_auto_ssdt	[HW,ACPI] Disable automatic loading of SSDT
 
 

+ 1 - 1
drivers/acpi/acpica/acglobal.h

@@ -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
  * that create named objects are marked Serialized in order to prevent
  * possible run-time problems if they are entered by more than one thread.
  * 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
  * Create the predefined _OSI method in the namespace? Default is TRUE

+ 6 - 6
drivers/acpi/osl.c

@@ -1540,20 +1540,20 @@ static int __init osi_setup(char *str)
 __setup("acpi_osi=", osi_setup);
 __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".
  * 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;
 	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
 /* Check of resource interference between native drivers and ACPI
  * OperationRegions (SystemIO and System Memory only).
  * OperationRegions (SystemIO and System Memory only).