- util: introduce object for holding a system inhibitor lock (RHEL-83064) - src: convert drivers over to new virInhibitor APIs (RHEL-83064) - rpc: remove logind support for virNetDaemon (RHEL-83064) - util: fix off-by-1 in inhibitor constants (RHEL-83064) - util: don't attempt to acquire logind inhibitor if not requested (RHEL-83064) - network: Free inhibitor in networkStateCleanup() (RHEL-83064) - conf: introduce support for multiple ACPI tables (RHEL-81041) - src: validate permitted ACPI table types in libxl/qemu drivers (RHEL-81041) - src: introduce 'raw' and 'rawset' ACPI table types (RHEL-81041) - qemu: support 'raw' ACPI table type (RHEL-81041) - libxl: support 'rawset' ACPI table type (RHEL-81041) - conf: support MSDM ACPI table type (RHEL-81041) - qemu: support MSDM ACPI table type (RHEL-81041) - qemuxmlconftest: Include shared memory 'net-vhostuser' test cases (RHEL-84133) - qemuValidateDomainDeviceDefNetwork: Require shared memory for all vhost-user interfaces (RHEL-84133) - qemu: process: Remove un-updated 'qemuProcessStartWarnShmem' (RHEL-84133) Resolves: RHEL-81041, RHEL-83064, RHEL-84133
109 lines
4.9 KiB
Diff
109 lines
4.9 KiB
Diff
From d50549c9b0e601bc3a6ae5ee97d1ff2f75645f57 Mon Sep 17 00:00:00 2001
|
|
Message-ID: <d50549c9b0e601bc3a6ae5ee97d1ff2f75645f57.1742990721.git.jdenemar@redhat.com>
|
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
|
Date: Mon, 17 Feb 2025 16:58:27 +0000
|
|
Subject: [PATCH] qemu: support MSDM ACPI table type
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The MSDM ACPI table is a replacement for the SLIC table type, now
|
|
sometimes used by Microsoft for Windows Licensing checks:
|
|
|
|
https://learn.microsoft.com/en-us/previous-versions/windows/hardware/design/dn653305(v=vs.85)
|
|
|
|
Resolves: https://gitlab.com/libvirt/libvirt/-/issues/748
|
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
(cherry picked from commit 288f90feb32e38dfd246cbfb68f38caca43cef70)
|
|
Resolves: https://issues.redhat.com/browse/RHEL-81041
|
|
---
|
|
docs/formatdomain.rst | 2 +-
|
|
src/qemu/qemu_command.c | 2 +-
|
|
src/qemu/qemu_validate.c | 2 +-
|
|
tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args | 1 +
|
|
tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml | 1 +
|
|
tests/qemuxmlconfdata/acpi-table-many.xml | 1 +
|
|
6 files changed, 6 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst
|
|
index c144851b62..961d20a41d 100644
|
|
--- a/docs/formatdomain.rst
|
|
+++ b/docs/formatdomain.rst
|
|
@@ -500,7 +500,7 @@ These options apply to any form of booting of the guest OS.
|
|
* ``msdm``: a single ACPI table with header and data, providing
|
|
Microsoft Data Management information. The ACPI table signature
|
|
in the header will be forced to ``MSDM``
|
|
- (:since:`Since 11.2.0`).
|
|
+ (:since:`Since 11.2.0 (QEMU)`).
|
|
|
|
Each type may be used only once, except for ``raw`` which can
|
|
appear multiple times.
|
|
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
|
index 9fe191d3b9..b7d61edd19 100644
|
|
--- a/src/qemu/qemu_command.c
|
|
+++ b/src/qemu/qemu_command.c
|
|
@@ -133,7 +133,7 @@ VIR_ENUM_IMPL(qemuACPITableSIG,
|
|
"", /* raw */
|
|
"", /* rawset */
|
|
"SLIC",
|
|
- "");
|
|
+ "MSDM");
|
|
|
|
|
|
const char *
|
|
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
|
|
index 378f502ea7..f814ee8c0d 100644
|
|
--- a/src/qemu/qemu_validate.c
|
|
+++ b/src/qemu/qemu_validate.c
|
|
@@ -731,10 +731,10 @@ qemuValidateDomainDefBoot(const virDomainDef *def,
|
|
switch (def->os.acpiTables[i]->type) {
|
|
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAW:
|
|
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_SLIC:
|
|
+ case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
|
|
break;
|
|
|
|
case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_RAWSET:
|
|
- case VIR_DOMAIN_OS_ACPI_TABLE_TYPE_MSDM:
|
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
|
_("ACPI table type '%1$s' is not supported"),
|
|
virDomainOsACPITableTypeToString(def->os.acpiTables[i]->type));
|
|
diff --git a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
|
|
index 4d5d02cb3c..2b0b433258 100644
|
|
--- a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
|
|
+++ b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.args
|
|
@@ -30,6 +30,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
|
|
-acpitable file=/var/lib/libvirt/acpi/exm2.dat \
|
|
-acpitable file=/var/lib/libvirt/acpi/exm3.dat \
|
|
-acpitable sig=SLIC,file=/var/lib/libvirt/acpi/slic.dat \
|
|
+-acpitable sig=MSDM,file=/var/lib/libvirt/acpi/msdm.dat \
|
|
-device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}' \
|
|
-audiodev '{"id":"audio1","driver":"none"}' \
|
|
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
|
|
diff --git a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
|
|
index b7f7e18d28..084bb4cda3 100644
|
|
--- a/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
|
|
+++ b/tests/qemuxmlconfdata/acpi-table-many.x86_64-latest.xml
|
|
@@ -11,6 +11,7 @@
|
|
<table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
|
|
<table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
|
|
<table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
|
|
+ <table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
|
|
</acpi>
|
|
<boot dev='hd'/>
|
|
</os>
|
|
diff --git a/tests/qemuxmlconfdata/acpi-table-many.xml b/tests/qemuxmlconfdata/acpi-table-many.xml
|
|
index cc75011990..890078d4c3 100644
|
|
--- a/tests/qemuxmlconfdata/acpi-table-many.xml
|
|
+++ b/tests/qemuxmlconfdata/acpi-table-many.xml
|
|
@@ -12,6 +12,7 @@
|
|
<table type='raw'>/var/lib/libvirt/acpi/exm2.dat</table>
|
|
<table type='raw'>/var/lib/libvirt/acpi/exm3.dat</table>
|
|
<table type='slic'>/var/lib/libvirt/acpi/slic.dat</table>
|
|
+ <table type='msdm'>/var/lib/libvirt/acpi/msdm.dat</table>
|
|
</acpi>
|
|
</os>
|
|
<features>
|
|
--
|
|
2.49.0
|