[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 19/28] ACPI DSDT: Make control method `IQCR` serializ
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] [PULL 19/28] ACPI DSDT: Make control method `IQCR` serialized |
Date: |
Wed, 11 Dec 2013 20:31:06 +0200 |
Forward-port the following commit from seabios:
commit 995bbeef78b338370f426bf8d0399038c3fa259c
Author: Paul Menzel <address@hidden>
Date: Thu Oct 3 11:30:52 2013 +0200
The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues the
following warning.
$ make
[…]
Compiling IASL out/src/fw/acpi-dsdt.hex
out/src/fw/acpi-dsdt.dsl.i 360: Method(IQCR, 1,
NotSerialized) {
Remark 2120 - ^ Control
Method should be made Serialized (due to creation of named objects within)
[…]
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 named
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
Optimizations
[…]
After changing the parameter from `NotSerialized` to `Serialized`, the
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 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/ba84d0fc18ba910a47a3f71c68a43543c06e6831
Signed-off-by: Paul Menzel <address@hidden>
Reported-by: Marcel Apfelbaum <address@hidden>
Tested-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
---
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.generated
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[] = {
0x0,
0x0,
0x1,
-0xe0,
+0xd8,
0x42,
0x58,
0x50,
@@ -3379,7 +3379,7 @@ static unsigned char AcpiDsdtAmlCode[] = {
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[] = {
0x0,
0x0,
0x1,
-0x6,
+0xfe,
0x42,
0x58,
0x50,
@@ -5338,7 +5338,7 @@ static unsigned char Q35AcpiDsdtAmlCode[] = {
0x51,
0x43,
0x52,
-0x1,
+0x9,
0x8,
0x50,
0x52,
--
MST
- [Qemu-devel] [PULL 23/28] memory.c: bugfix - ref counting mismatch in memory_region_find, (continued)
- [Qemu-devel] [PULL 23/28] memory.c: bugfix - ref counting mismatch in memory_region_find, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 24/28] exec: separate sections and nodes per address space, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 22/28] hpet: enable to entitle more irq pins for hpet, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 25/28] acpi unit-test: load and check facs table, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 26/28] acpi unit-test: adjust the test data structure for better handling, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 28/28] pc: use macro for HPET type, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 27/28] hpet: fix build with CONFIG_HPET off, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 17/28] acpi unit-test: verify signature and checksum, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 20/28] pci: fix pci bridge fw path, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 18/28] acpi: strip compiler info in built-in DSDT, Michael S. Tsirkin, 2013/12/11
- [Qemu-devel] [PULL 19/28] ACPI DSDT: Make control method `IQCR` serialized,
Michael S. Tsirkin <=