Paul Menzel (paulepanter@users.sourceforge.net) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/4093
-gerrit
commit 7b9517b41ebf8fac9df0304b373d1d06adc6fd62 Author: Paul Menzel paulepanter@users.sourceforge.net Date: Mon Nov 18 11:57:45 2013 +0100
arch/x86/acpi/globutil.asl: Make control method `S2BF` serialized
The ASL Optimizing Compiler version 20130517-64 issues the following warning when building for example AMD Parmer and ASRock E350M1.
IASL coreboot-builds/amd_parmer/mainboard/amd/parmer/dsdt.ramstage.o dsdt.ramstage.asl 196: Method(S2BF, 1) Remark 2120 - ^ Control Method should be made Serialized (due to creation of named objects within)
Intel ACPI Component Architecture ASL Optimizing Compiler version 20130517-64 Copyright (c) 2000 - 2013 Intel Corporation
ASL Input: dsdt.ramstage.asl - 1164 lines, 23047 bytes, 547 keywords AML Output: dsdt.ramstage.aml - 6898 bytes, 305 named objects, 242 executable opcodes Hex Dump: dsdt.ramstage.hex - 65007 bytes
Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 347 Optimizations
Taking the advice and making the control method serialized, as expected, the remark is gone and there are no size changes.
The remark was added in ACPICA version 20130517 [1] and gives the following explanation.
If a thread blocks within the method for any reason, and another thread enters the method, the method will fail because an attempt will be made to create the same (named) object twice.
In this case, issue a remark that the method should be marked serialized. ACPICA BZ 909.
[1] https://github.com/acpica/acpica/commit/ba84d0fc18ba910a47a3f71c68a43543c06e... iASL: If a non-serialized method creates named objects, issue remark.
Change-Id: I502cca731b6b4cd3e17c57fc191f1eed10a5a1fe Signed-off-by: Paul Menzel paulepanter@users.sourceforge.net --- src/arch/x86/acpi/globutil.asl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/arch/x86/acpi/globutil.asl b/src/arch/x86/acpi/globutil.asl index b39113f..a39d6ed 100644 --- a/src/arch/x86/acpi/globutil.asl +++ b/src/arch/x86/acpi/globutil.asl @@ -39,7 +39,7 @@ Method(SLEN, 1) Return(Sizeof(Local0)) }
-Method(S2BF, 1) +Method(S2BF, 1, Serialized) { Add(SLEN(Arg0), One, Local0) Name(BUFF, Buffer(Local0) {})