Add further fix for SLIC table parsing (RHBZ#2020186)
This commit is contained in:
parent
a9028c06ad
commit
7f59bf8f07
60
0001-acpi-fix-OEM-ID-OEM-Table-ID-padding.patch
Normal file
60
0001-acpi-fix-OEM-ID-OEM-Table-ID-padding.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From 748c030f360a940fe0c9382c8ca1649096c3a80d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
Date: Wed, 12 Jan 2022 08:03:31 -0500
|
||||||
|
Subject: [PATCH] acpi: fix OEM ID/OEM Table ID padding
|
||||||
|
|
||||||
|
Commit [2] broke original '\0' padding of OEM ID and OEM Table ID
|
||||||
|
fields in headers of ACPI tables. While it doesn't have impact on
|
||||||
|
default values since QEMU uses 6 and 8 characters long values
|
||||||
|
respectively, it broke usecase where IDs are provided on QEMU CLI.
|
||||||
|
It shouldn't affect guest (but may cause licensing verification
|
||||||
|
issues in guest OS).
|
||||||
|
One of the broken usecases is user supplied SLIC table with IDs
|
||||||
|
shorter than max possible length, where [2] mangles IDs with extra
|
||||||
|
spaces in RSDT and FADT tables whereas guest OS expects those to
|
||||||
|
mirror the respective values of the used SLIC table.
|
||||||
|
|
||||||
|
Fix it by replacing whitespace padding with '\0' padding in
|
||||||
|
accordance with [1] and expectations of guest OS
|
||||||
|
|
||||||
|
1) ACPI spec, v2.0b
|
||||||
|
17.2 AML Grammar Definition
|
||||||
|
...
|
||||||
|
//OEM ID of up to 6 characters. If the OEM ID is
|
||||||
|
//shorter than 6 characters, it can be terminated
|
||||||
|
//with a NULL character.
|
||||||
|
|
||||||
|
2)
|
||||||
|
Fixes: 602b458201 ("acpi: Permit OEM ID and OEM table ID fields to be changed")
|
||||||
|
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/707
|
||||||
|
Reported-by: Dmitry V. Orekhov <dima.orekhov@gmail.com>
|
||||||
|
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
||||||
|
Cc: qemu-stable@nongnu.org
|
||||||
|
Message-Id: <20220112130332.1648664-4-imammedo@redhat.com>
|
||||||
|
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
||||||
|
Reviewed-by: Ani Sinha <ani@anisinha.ca>
|
||||||
|
Tested-by: Dmitry V. Orekhov dima.orekhov@gmail.com
|
||||||
|
---
|
||||||
|
hw/acpi/aml-build.c | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
|
||||||
|
index bb2cad63b5..8966e16320 100644
|
||||||
|
--- a/hw/acpi/aml-build.c
|
||||||
|
+++ b/hw/acpi/aml-build.c
|
||||||
|
@@ -1724,9 +1724,9 @@ void acpi_table_begin(AcpiTable *desc, GArray *array)
|
||||||
|
build_append_int_noprefix(array, 0, 4); /* Length */
|
||||||
|
build_append_int_noprefix(array, desc->rev, 1); /* Revision */
|
||||||
|
build_append_int_noprefix(array, 0, 1); /* Checksum */
|
||||||
|
- build_append_padded_str(array, desc->oem_id, 6, ' '); /* OEMID */
|
||||||
|
+ build_append_padded_str(array, desc->oem_id, 6, '\0'); /* OEMID */
|
||||||
|
/* OEM Table ID */
|
||||||
|
- build_append_padded_str(array, desc->oem_table_id, 8, ' ');
|
||||||
|
+ build_append_padded_str(array, desc->oem_table_id, 8, '\0');
|
||||||
|
build_append_int_noprefix(array, 1, 4); /* OEM Revision */
|
||||||
|
g_array_append_vals(array, ACPI_BUILD_APPNAME8, 4); /* Creator ID */
|
||||||
|
build_append_int_noprefix(array, 1, 4); /* Creator Revision */
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
10
qemu.spec
10
qemu.spec
@ -302,7 +302,7 @@ Obsoletes: %{name}-system-unicore32-core <= %{epoch}:%{version}-%{release}
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# To prevent rpmdev-bumpspec breakage
|
# To prevent rpmdev-bumpspec breakage
|
||||||
%global baserelease 9
|
%global baserelease 10
|
||||||
|
|
||||||
Summary: QEMU is a FAST! processor emulator
|
Summary: QEMU is a FAST! processor emulator
|
||||||
Name: qemu
|
Name: qemu
|
||||||
@ -344,6 +344,11 @@ Patch0005: 0001-acpi-fix-QEMU-crash-when-started-with-SLIC-table.patch
|
|||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2080519
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2080519
|
||||||
Patch0006: 0001-accel-tcg-Fix-cpu_ldq_be_mmu-typo.patch
|
Patch0006: 0001-accel-tcg-Fix-cpu_ldq_be_mmu-typo.patch
|
||||||
|
|
||||||
|
# Further fix for SLIC table
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=2020186
|
||||||
|
# https://gitlab.com/qemu-project/qemu/-/commit/748c030f360a940fe0c9382c8ca1649096c3a80d
|
||||||
|
Patch0007: 0001-acpi-fix-OEM-ID-OEM-Table-ID-padding.patch
|
||||||
|
|
||||||
BuildRequires: meson >= %{meson_version}
|
BuildRequires: meson >= %{meson_version}
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
BuildRequires: glib2-devel
|
BuildRequires: glib2-devel
|
||||||
@ -2309,6 +2314,9 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu May 12 2022 Richard W.M. Jones <rjones@redhat.com> - 2:6.2.0-10
|
||||||
|
- Add further fix for SLIC table parsing (RHBZ#2020186)
|
||||||
|
|
||||||
* Thu May 05 2022 Richard W.M. Jones <rjones@redhat.com> - 2:6.2.0-9
|
* Thu May 05 2022 Richard W.M. Jones <rjones@redhat.com> - 2:6.2.0-9
|
||||||
- Fix for s390x emulation breaking Python (RHBZ#2080519)
|
- Fix for s390x emulation breaking Python (RHBZ#2080519)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user