From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54572) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VgvnX-0002lP-3q for qemu-devel@nongnu.org; Thu, 14 Nov 2013 07:13:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VgvnR-0000FU-IF for qemu-devel@nongnu.org; Thu, 14 Nov 2013 07:13:23 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47479) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VgvnR-0000FJ-A3 for qemu-devel@nongnu.org; Thu, 14 Nov 2013 07:13:17 -0500 Date: Thu, 14 Nov 2013 14:16:09 +0200 From: "Michael S. Tsirkin" Message-ID: <20131114121609.GA4997@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH] ACPI DSDT: Make control method `IQCR` serialized List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Marcel Apfelbaum Cc: Hu Tao , qemu-devel@nongnu.org, Gerd Hoffmann , Anthony Liguori , Kenji Kaneshige , Igor Mammedov , Laszlo Ersek , Paul Menzel Forward-port the following commit from seabios: commit 995bbeef78b338370f426bf8d0399038c3fa259c Author: Paul Menzel Date: Thu Oct 3 11:30:52 2013 +0200 The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues = the following warning. $ make [=E2=80=A6] Compiling IASL out/src/fw/acpi-dsdt.hex out/src/fw/acpi-dsdt.dsl.i 360: Method(IQCR, 1, No= tSerialized) { Remark 2120 - ^ Control= Method should be made Serialized (due to creation of named objects withi= n) [=E2=80=A6] ASL Input: out/src/fw/acpi-dsdt.dsl.i - 475 lines, 19181 = bytes, 316 keywords AML Output: out/src/fw/acpi-dsdt.aml - 4407 bytes, 159 nam= ed objects, 157 executable opcodes Listing File: out/src/fw/acpi-dsdt.lst - 143715 bytes Hex Dump: out/src/fw/acpi-dsdt.hex - 41661 bytes Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 246 Op= timizations [=E2=80=A6] After changing the parameter from `NotSerialized` to `Serialized`, th= e remark is indeed gone and there is no size change. 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 anot= her thread enters the method, the method will fail because an attempt wi= ll 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/ba84d0fc18ba910a47a3f71c6= 8a43543c06e6831 Signed-off-by: Paul Menzel Reported-by: Marcel Apfelbaum Signed-off-by: Michael S. Tsirkin --- hw/i386/acpi-dsdt.dsl | 2 +- hw/i386/acpi-dsdt.hex.generated | 4 ++-- hw/i386/q35-acpi-dsdt.dsl | 2 +- hw/i386/q35-acpi-dsdt.hex.generated | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl index 90efce0..a377424 100644 --- a/hw/i386/acpi-dsdt.dsl +++ b/hw/i386/acpi-dsdt.dsl @@ -235,7 +235,7 @@ DefinitionBlock ( } Return (0x0B) } - Method(IQCR, 1, NotSerialized) { + Method(IQCR, 1, Serialized) { // _CRS method - get current settings Name(PRR0, ResourceTemplate() { Interrupt(, Level, ActiveHigh, Shared) { 0 } diff --git a/hw/i386/acpi-dsdt.hex.generated b/hw/i386/acpi-dsdt.hex.gene= rated index 2c01107..f8bd4ea 100644 --- a/hw/i386/acpi-dsdt.hex.generated +++ b/hw/i386/acpi-dsdt.hex.generated @@ -8,7 +8,7 @@ static unsigned char AcpiDsdtAmlCode[] =3D { 0x0, 0x0, 0x1, -0xe0, +0xd8, 0x42, 0x58, 0x50, @@ -3379,7 +3379,7 @@ static unsigned char AcpiDsdtAmlCode[] =3D { 0x51, 0x43, 0x52, -0x1, +0x9, 0x8, 0x50, 0x52, diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl index 21c89b0..575c5d7 100644 --- a/hw/i386/q35-acpi-dsdt.dsl +++ b/hw/i386/q35-acpi-dsdt.dsl @@ -333,7 +333,7 @@ DefinitionBlock ( } Return (0x0B) } - Method(IQCR, 1, NotSerialized) { + Method(IQCR, 1, Serialized) { // _CRS method - get current settings Name(PRR0, ResourceTemplate() { Interrupt(, Level, ActiveHigh, Shared) { 0 } diff --git a/hw/i386/q35-acpi-dsdt.hex.generated b/hw/i386/q35-acpi-dsdt.= hex.generated index 32c16ff..111ad3e 100644 --- a/hw/i386/q35-acpi-dsdt.hex.generated +++ b/hw/i386/q35-acpi-dsdt.hex.generated @@ -8,7 +8,7 @@ static unsigned char Q35AcpiDsdtAmlCode[] =3D { 0x0, 0x0, 0x1, -0x6, +0xfe, 0x42, 0x58, 0x50, @@ -5338,7 +5338,7 @@ static unsigned char Q35AcpiDsdtAmlCode[] =3D { 0x51, 0x43, 0x52, -0x1, +0x9, 0x8, 0x50, 0x52, --=20 MST