From: Andrea Bolognani Date: Wed, 21 Jan 2026 18:42:40 +0000 (+0100) Subject: qemu_firmware: Fill in varstore information X-Git-Tag: v12.1.0-rc1~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=da7eb72148ce787e719faf2ceeaa7ff3c458a50a;p=thirdparty%2Flibvirt.git qemu_firmware: Fill in varstore information If the matching firmware requires the use of varstore, we have to bubble up information about it, namely the path to the template. If the struct member doesn't exist yet, we need to allocate it. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik Acked-by: Gerd Hoffmann Reviewed-by: Daniel P. Berrangé --- diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 60635b559f..5a07e3181f 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1492,6 +1492,7 @@ qemuFirmwareEnableFeaturesModern(virDomainDef *def, const qemuFirmwareMappingFlash *flash = &fw->mapping.data.flash; const qemuFirmwareMappingMemory *memory = &fw->mapping.data.memory; virDomainLoaderDef *loader = NULL; + virDomainVarstoreDef *varstore = NULL; virStorageFileFormat format; bool hasSecureBoot = false; bool hasEnrolledKeys = false; @@ -1552,8 +1553,17 @@ qemuFirmwareEnableFeaturesModern(virDomainDef *def, VIR_FREE(loader->path); loader->path = g_strdup(memory->filename); - VIR_DEBUG("decided on loader '%s'", - loader->path); + if (memory->template) { + if (!def->os.varstore) + def->os.varstore = virDomainVarstoreDefNew(); + varstore = def->os.varstore; + + VIR_FREE(varstore->template); + varstore->template = g_strdup(memory->template); + } + + VIR_DEBUG("decided on loader '%s' template '%s'", + loader->path, NULLSTR(varstore ? varstore->template : NULL)); break; case QEMU_FIRMWARE_DEVICE_NONE: