When removing last host device using IOMMUFD remove the iommufd object as well. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/qemu/qemu_hotplug.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index d17370b582..24fbccccf0 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -4997,6 +4997,14 @@ qemuDomainRemoveHostDevice(virQEMUDriver *driver, } } + if (priv->iommufdState && + !virDomainDefHasPCIHostdevWithIOMMUFD(vm->def)) { + qemuDomainObjEnterMonitor(vm); + ignore_value(qemuMonitorDelObject(priv->mon, "iommufd0", false)); + qemuDomainObjExitMonitor(vm); + priv->iommufdState = false; + } + virDomainAuditHostdev(vm, hostdev, "detach", true); if (!virHostdevIsPCIDevice(hostdev) && -- 2.53.0