From 32228ecb02fde91ce91aa960d187d545bfbc03cf Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Thu, 15 Aug 2024 17:02:54 +0200 Subject: [PATCH] conf: Remove nonsensical requirement of nvram format matching firmware format MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The nvram image can have any supported format and there's no technical requirement of them having the same format. In fact the actual nvram image doesn't necessarily need to have the same format as the template if the user is willing to format it themselves (as libvirt is not going to convert it). Remove the nonsensical check and adjust tests. The test case required swapping around the format in order to work properly. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik Reviewed-by: Ján Tomko --- src/conf/domain_conf.c | 10 ----- ...uto-efi-format-mismatch.x86_64-latest.args | 37 +++++++++++++++++ ...auto-efi-format-mismatch.x86_64-latest.err | 1 - ...auto-efi-format-mismatch.x86_64-latest.xml | 41 +++++++++++++++++++ .../firmware-auto-efi-format-mismatch.xml | 4 +- tests/qemuxmlconftest.c | 2 +- 6 files changed, 81 insertions(+), 14 deletions(-) create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.args delete mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.err create mode 100644 tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.xml diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 335ffc78bf..cf74ac3735 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -17294,16 +17294,6 @@ virDomainLoaderDefParseXML(virDomainLoaderDef *loader, loaderNode) < 0) return -1; - if (loader->nvram && - loader->format && loader->nvram->format && - loader->format != loader->nvram->format) { - virReportError(VIR_ERR_XML_ERROR, - _("Format mismatch: loader.format='%1$s' nvram.format='%2$s'"), - virStorageFileFormatTypeToString(loader->format), - virStorageFileFormatTypeToString(loader->nvram->format)); - return -1; - } - return 0; } diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.args b/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.args new file mode 100644 index 0000000000..1bdd482d71 --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.args @@ -0,0 +1,37 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/var/lib/libvirt/qemu/domain--1-guest \ +USER=test \ +LOGNAME=test \ +XDG_DATA_HOME=/var/lib/libvirt/qemu/domain--1-guest/.local/share \ +XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain--1-guest/.cache \ +XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=guest,debug-threads=on \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ +-blockdev '{"driver":"file","filename":"/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"raw","file":"libvirt-pflash0-storage"}' \ +-blockdev '{"driver":"file","filename":"/var/lib/libvirt/qemu/nvram/guest_VARS.fd","node-name":"libvirt-pflash1-storage","read-only":false}' \ +-machine pc-q35-4.0,usb=off,smm=on,dump-guest-core=off,memory-backend=pc.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-storage,acpi=on \ +-accel kvm \ +-cpu qemu64 \ +-global driver=cfi.pflash01,property=secure,value=on \ +-m size=1048576k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":1073741824}' \ +-overcommit mem-lock=off \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid 63840878-0deb-4095-97e6-fc444d9bc9fa \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \ +-mon chardev=charmonitor,id=monitor,mode=control \ +-rtc base=utc \ +-no-shutdown \ +-boot strict=on \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-global ICH9-LPC.noreboot=off \ +-watchdog-action reset \ +-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ +-msg timestamp=on diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.err b/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.err deleted file mode 100644 index abfdfc4357..0000000000 --- a/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.err +++ /dev/null @@ -1 +0,0 @@ -XML error: Format mismatch: loader.format='qcow2' nvram.format='raw' diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.xml b/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.xml new file mode 100644 index 0000000000..79ab55751b --- /dev/null +++ b/tests/qemuxmlconfdata/firmware-auto-efi-format-mismatch.x86_64-latest.xml @@ -0,0 +1,41 @@ + + guest + 63840878-0deb-4095-97e6-fc444d9bc9fa + 1048576 + 1048576 + 1 + + hvm + + + + + /usr/share/edk2/ovmf/OVMF_CODE.secboot.fd + /var/lib/libvirt/qemu/nvram/guest_VARS.fd + + + + + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + +
+ + + + +