It doesn't make sense for non-local sources, since we can't create or reset the corresponding NVRAM file.
Signed-off-by: Andrea Bolognani <abolo...@redhat.com> --- src/qemu/qemu_firmware.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 13bac9490a..175a4db21d 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1194,15 +1194,20 @@ qemuFirmwareEnableFeatures(virQEMUDriver *driver, return -1; } - VIR_FREE(loader->nvramTemplate); - loader->nvramTemplate = g_strdup(flash->nvram_template.filename); - if (!loader->nvram) { loader->nvram = virStorageSourceNew(); loader->nvram->type = VIR_STORAGE_TYPE_FILE; loader->nvram->format = VIR_STORAGE_FILE_RAW; qemuDomainNVRAMPathFormat(cfg, def, &loader->nvram->path); } + + /* If the NVRAM is not a local path then we can't create or + * reset it, so in that case filling in the nvramTemplate + * field would be misleading */ + VIR_FREE(loader->nvramTemplate); + if (loader->nvram && virStorageSourceIsLocalStorage(loader->nvram)) { + loader->nvramTemplate = g_strdup(flash->nvram_template.filename); + } } VIR_DEBUG("decided on firmware '%s' template '%s' NVRAM '%s'", -- 2.39.1