From: Pavel Hrdina Date: Sat, 14 Feb 2026 16:54:57 +0000 (+0100) Subject: qemu: Save IOMMUFD state into status XML X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b21b6dcc72f1853f103f3cfbe1ebbcfbf128b458;p=thirdparty%2Flibvirt.git qemu: Save IOMMUFD state into status XML We need to track if iommufd object was added to the VM when we add hotplug support. Signed-off-by: Pavel Hrdina Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 724f0cd8eb..cdf2f91ece 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -5366,6 +5366,8 @@ qemuBuildIOMMUFDCommandLine(virCommand *cmd, if (qemuBuildObjectCommandlineFromJSON(cmd, props) < 0) return -1; + priv->iommufdState = true; + return 0; } diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ada9d3431c..ccbfc8bac7 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1976,6 +1976,7 @@ qemuDomainObjPrivateDataClear(qemuDomainObjPrivate *priv) priv->migrationRecoverSetup = false; g_clear_pointer(&priv->iommufd, qemuFDPassDirectFree); + priv->iommufdState = false; g_clear_pointer(&priv->memoryBackingDir, g_free); } @@ -2844,6 +2845,9 @@ qemuDomainObjPrivateXMLFormat(virBuffer *buf, priv->preMigrationMemlock); } + if (priv->iommufdState) + virBufferAddLit(buf, "\n"); + return 0; } @@ -3582,6 +3586,8 @@ qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, return -1; } + priv->iommufdState = virXPathBoolean("boolean(./iommufd)", ctxt) == 1; + return 0; } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index fa7d4ab40f..5755d2adb0 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -265,6 +265,7 @@ struct _qemuDomainObjPrivate { GHashTable *fds; qemuFDPassDirect *iommufd; + bool iommufdState; /* true if --object iommufd was added */ char *memoryBackingDir; };