diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 914f8596bd..5c247b1cf2 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1054,13 +1054,14 @@ qemuFirmwareEnsureNVRAM(virDomainDef *def, if (loader->nvram && !loader->nvram->format) loader->nvram->format = loader->format; - /* If the source already exists and is fully specified, including - * the path, leave it alone */ - if (loader->nvram && loader->nvram->path) - return; + if (loader->nvram) { + /* Nothing to do if a proper NVRAM backend is already configured */ + if (!virStorageSourceIsEmpty(loader->nvram)) + return; - if (loader->nvram) + /* otherwise we want to reset and re-populate the definition */ virObjectUnref(loader->nvram); + } loader->nvram = virStorageSourceNew(); loader->nvram->type = VIR_STORAGE_TYPE_FILE; diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.args b/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.args index 77babdc147..f78b4e7abf 100644 --- a/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.args +++ b/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \ -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_4M.qcow2","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"qcow2","file":"libvirt-pflash0-storage"}' \ --blockdev '{"driver":"nbd","server":{"type":"inet","host":"example.org","port":"6000"},"export":"bar","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' \ +-blockdev '{"driver":"nbd","server":{"type":"inet","host":"example.org","port":"6000"},"node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"qcow2","file":"libvirt-pflash1-storage"}' \ -machine pc-i440fx-4.0,usb=off,dump-guest-core=off,memory-backend=pc.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,acpi=on \ -accel tcg \ diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml b/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml index 35865b23c5..cc87905306 100644 --- a/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml +++ b/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.x86_64-latest.xml @@ -11,7 +11,7 @@ /usr/share/edk2/ovmf/OVMF_CODE_4M.qcow2 - + diff --git a/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.xml b/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.xml index 0028bde4d7..d604840edd 100644 --- a/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.xml +++ b/tests/qemuxmlconfdata/firmware-auto-efi-format-nvram-qcow2-network-nbd.xml @@ -6,7 +6,7 @@ hvm - +