Since we now have a full virStorageSource for storing the nvram path we
don't need the extra dance of transfering the data into the 'pflash1'
variable which was an intermediary solution to use -blockdev.
For now we keep it functionally identical to the previous impl.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_command.c | 14 +++++++++-----
src/qemu/qemu_domain.c | 12 ++----------
src/qemu/qemu_domain.h | 1 -
3 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 952336bafc..c57ff6d281 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -7138,11 +7138,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))
@@ -10126,6 +10127,9 @@ qemuBuildPflashBlockdevCommandLine(virCommand *cmd,
{
qemuDomainObjPrivate *priv = vm->privateData;
+ if (!virDomainDefHasOldStyleUEFI(vm->def))
+ return 0;
+
if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV))
return 0;
@@ -10133,8 +10137,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 1ee3cc3922..9ed2d1fd86 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 */
@@ -11314,7 +11313,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;
@@ -11333,17 +11331,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 558037204c..0c6b3eeffa 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;
--
2.35.3