]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Only fill nvramTemplate for local sources
authorAndrea Bolognani <abologna@redhat.com>
Fri, 10 Feb 2023 18:43:53 +0000 (19:43 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Fri, 3 Mar 2023 12:49:56 +0000 (13:49 +0100)
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>
src/qemu/qemu_firmware.c

index 13bac9490a078c720a8389f84a6a7d32db98249f..175a4db21dd83d32153bad83814397f3984a96cb 100644 (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'",