qemu: Only fill nvramTemplate for local sources

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 <abologna@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Andrea Bolognani 2023-02-10 19:43:53 +01:00
parent 19ce6573e9
commit 6981019ed1

View File

@ -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'",