From 9d8abe04804c417746228467b4fcb79b34c7982c Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 3 Jun 2022 13:22:42 +0200 Subject: [PATCH] qemuFirmwareFillDomain: Don't fill in firmware for network backed nvram MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prepare for network backed nvram by refusing the reset of nvram on boot and don't check whether it exists. We will not support filling it from a template. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko Tested-by: Rohit Kumar --- src/qemu/qemu_firmware.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index dd4273f73a..a219978962 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1371,10 +1371,22 @@ qemuFirmwareFillDomain(virQEMUDriver *driver, def->os.loader->nvramTemplate) return 0; - if (!reset_nvram && def->os.loader->nvram && - virStorageSourceIsLocalStorage(def->os.loader->nvram) && - virFileExists(def->os.loader->nvram->path)) - return 0; + if (def->os.loader->nvram) { + if (!virStorageSourceIsLocalStorage(def->os.loader->nvram)) { + if (reset_nvram) { + virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", + _("resetting of nvram is not supported with network backed nvram")); + return -1; + } + + /* we don't scrutinize whether NVRAM image accessed via network + * is present */ + return 0; + } + + if (!reset_nvram && virFileExists(def->os.loader->nvram->path)) + return 0; + } /* ... then we want to consult JSON FW descriptors first, * but we don't want to fail if we haven't found a match. */