]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: AcpiTables: serialize control methods that create named objects
authorLaszlo Ersek <lersek@redhat.com>
Wed, 2 Sep 2015 18:45:40 +0000 (18:45 +0000)
committerlersek <lersek@Edk2>
Wed, 2 Sep 2015 18:45:40 +0000 (18:45 +0000)
Bruce Cran reported the following issue:

  With iasl version 20150410-64 building OvmfX64 (using OvmfPkg/build.sh
  -a X64 -t GCC49 -b RELEASE) results in a couple of warnings about
  methods that should be serialized:

  .../OvmfPkg/AcpiTables/AcpiTables/OUTPUT/./Dsdt.iiii
  95:       Method (_CRS, 0) {
  Remark   2120 - Control Method should be made Serialized ^  (due to
  creation of named objects within)

  .../OvmfPkg/AcpiTables/AcpiTables/OUTPUT/./Dsdt.iiii
  235:         Method (PCRS, 1, NotSerialized) {
  Remark   2120 - Control Method should be made Serialized ^  (due to
  creation of named objects within)

The ACPI 6.0 spec justifies the above warnings in "19.6.82 Method (Declare
Control Method)":

  [...] The serialize rule can be used to prevent reentering of a method.
  This is especially useful if the method creates namespace objects.
  Without the serialize rule, the reentering of a method will fail when it
  attempts to create the same namespace object. [...]

Cc: Bruce Cran <bruce@cran.org.uk>
Reported-by: Bruce Cran <bruce@cran.org.uk>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18392 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/AcpiTables/Dsdt.asl

index 519a31250a45a18f6309a0b62c15b8e97923d2e9..2c3a314af62a11ad99dc4c80440e28d5bc769dab 100644 (file)
@@ -130,7 +130,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 4) {
             )\r
       })\r
 \r
-      Method (_CRS, 0) {\r
+      Method (_CRS, 0, Serialized) {\r
         //\r
         // see the FIRMWARE_DATA structure in "OvmfPkg/AcpiPlatformDxe/Qemu.c"\r
         //\r
@@ -360,7 +360,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 1, "INTEL ", "OVMF    ", 4) {
         // _CRS method for LNKA, LNKB, LNKC, LNKD\r
         // Arg0[in]: value of PIRA / PIRB / PIRC / PIRD\r
         //\r
-        Method (PCRS, 1, NotSerialized) {\r
+        Method (PCRS, 1, Serialized) {\r
           //\r
           // create temporary buffer with an Extended Interrupt Descriptor\r
           // whose single vector defaults to zero\r