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>
This commit is contained in:
Lv Zheng 2014-03-24 14:49:22 +08:00 committed by Rafael J. Wysocki
parent d18255795b
commit 08e1d7c029
3 changed files with 11 additions and 11 deletions

View File

@ -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] acpi_no_auto_serialize [HW,ACPI]
Enable auto-serialization of AML methods 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 feature is enabled by default.
This option allows to turn on the feature. 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

View 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 * 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

View File

@ -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; acpi_gbl_auto_serialize_methods = FALSE;
pr_info("ACPI: auto-serialization enabled\n"); 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).