From d50549c9b0e601bc3a6ae5ee97d1ff2f75645f57 Mon Sep 17 00:00:00 2001 Message-ID: From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= 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 Signed-off-by: Daniel P. Berrangé (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 @@ /var/lib/libvirt/acpi/exm2.dat
/var/lib/libvirt/acpi/exm3.dat
/var/lib/libvirt/acpi/slic.dat
+ /var/lib/libvirt/acpi/msdm.dat
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 @@ /var/lib/libvirt/acpi/exm2.dat
/var/lib/libvirt/acpi/exm3.dat
/var/lib/libvirt/acpi/slic.dat
+ /var/lib/libvirt/acpi/msdm.dat
-- 2.49.0