From: Pavel Hrdina Date: Sun, 15 Feb 2026 18:13:19 +0000 (+0100) Subject: qemu_process: Fix FD leak with multiple host devices using IOMMUFD X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d194f362f342c22731670e365e8a2681759dbc57;p=thirdparty%2Flibvirt.git qemu_process: Fix FD leak with multiple host devices using IOMMUFD We would open IOMMU device for each host device with IOMMUFD backend leaking FD except for the last one. Since we are adding only single iommufd object we need to open it only once. Fixes: 2f0999a161910e3992458902ce90d37f8b8f2642 Signed-off-by: Pavel Hrdina Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index cfc30dcbe4..1ca0ed1b9b 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -7740,13 +7740,15 @@ qemuProcessOpenVfioFds(virDomainObj *vm) /* Open VFIO device FD */ if (qemuProcessOpenVfioDeviceFd(hostdev) < 0) return -1; - - /* Open IOMMU FD */ - if (qemuProcessOpenIommuFd(vm) < 0) - return -1; } } + /* Open IOMMU FD */ + if (virDomainDefHasPCIHostdevWithIOMMUFD(vm->def) && + qemuProcessOpenIommuFd(vm) < 0) { + return -1; + } + return 0; }