diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5e39bca0e3..d5f0c25e8a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7142,11 +7142,12 @@ qemuBuildMachineCommandLine(virCommand *cmd, } } - if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV)) { + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV) && + virDomainDefHasOldStyleUEFI(def)) { if (priv->pflash0) virBufferAsprintf(&buf, ",pflash0=%s", priv->pflash0->nodeformat); - if (priv->pflash1) - virBufferAsprintf(&buf, ",pflash1=%s", priv->pflash1->nodeformat); + if (def->os.loader->nvram) + virBufferAsprintf(&buf, ",pflash1=%s", def->os.loader->nvram->nodeformat); } if (virDomainNumaHasHMAT(def->numa)) @@ -10148,6 +10149,9 @@ qemuBuildPflashBlockdevCommandLine(virCommand *cmd, { qemuDomainObjPrivate *priv = vm->privateData; + if (!virDomainDefHasOldStyleUEFI(vm->def)) + return 0; + if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) return 0; @@ -10155,8 +10159,8 @@ qemuBuildPflashBlockdevCommandLine(virCommand *cmd, qemuBuildPflashBlockdevOne(cmd, priv->pflash0, priv->qemuCaps) < 0) return -1; - if (priv->pflash1 && - qemuBuildPflashBlockdevOne(cmd, priv->pflash1, priv->qemuCaps) < 0) + if (vm->def->os.loader->nvram && + qemuBuildPflashBlockdevOne(cmd, vm->def->os.loader->nvram, priv->qemuCaps) < 0) return -1; return 0; diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index e5f819a4b4..2b9f06b1ec 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1698,7 +1698,6 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivate *priv) virHashRemoveAll(priv->blockjobs); g_clear_pointer(&priv->pflash0, virObjectUnref); - g_clear_pointer(&priv->pflash1, virObjectUnref); g_clear_pointer(&priv->backup, virDomainBackupDefFree); /* reset node name allocator */ @@ -11317,7 +11316,6 @@ qemuDomainInitializePflashStorageSource(virDomainObj *vm) qemuDomainObjPrivate *priv = vm->privateData; virDomainDef *def = vm->def; g_autoptr(virStorageSource) pflash0 = NULL; - g_autoptr(virStorageSource) pflash1 = NULL; if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) return 0; @@ -11336,17 +11334,11 @@ qemuDomainInitializePflashStorageSource(virDomainObj *vm) if (def->os.loader->nvram) { - pflash1 = virStorageSourceNew(); - pflash1->type = VIR_STORAGE_TYPE_FILE; - pflash1->format = VIR_STORAGE_FILE_RAW; - pflash1->path = g_strdup(def->os.loader->nvram->path); - pflash1->readonly = false; - pflash1->nodeformat = g_strdup("libvirt-pflash1-format"); - pflash1->nodestorage = g_strdup("libvirt-pflash1-storage"); + def->os.loader->nvram->nodeformat = g_strdup("libvirt-pflash1-format"); + def->os.loader->nvram->nodestorage = g_strdup("libvirt-pflash1-storage"); } priv->pflash0 = g_steal_pointer(&pflash0); - priv->pflash1 = g_steal_pointer(&pflash1); return 0; } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index e6509b5af5..c2a4dd0145 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -231,7 +231,6 @@ struct _qemuDomainObjPrivate { * pointers hold the temporary virStorageSources for creating the -blockdev * commandline for pflash drives. */ virStorageSource *pflash0; - virStorageSource *pflash1; /* running backup job */ virDomainBackupDef *backup;