From nobody Tue Mar 3 04:52:35 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1771245595; cv=none; d=zohomail.com; s=zohoarc; b=bEznFBkgsRUZH97GQv0b7runJpt4QOM5mfNIU2qGX64L/9tPCeV6C2ZMpdKwpq22w7fo/zuIy2ksTIXZWpmMyhe5K8XRtKS1tc+XANq52UsYhDR1El2Lzm86y1uxfaxprsVW38deaBBxbgDVDk+H+2yYU8Djzg8OBf6XOzSkr3A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771245595; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id:Cc; bh=HJCtW/M23Hbu2Udt3glPRlTrZEhv1//1eZHYI7rwVHs=; b=BtOCZpcRi5R95FIG0ienZPNdKcCbJ6Vp+xyLFIZYmQdNsSNhyhYk4/bBNuxAjTYtwVhJwpY5jA8sBdoTo7+FZpO1keZxr4GnhrK6pqXaD+lKI5yW2aEQW/KYo5LDjFMULdBkRmQ/j8T9KPeybPikMmSB/PL2pDDUfv1px4ktxMI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1771245595188135.302061540816; Mon, 16 Feb 2026 04:39:55 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 4D6A83F9B4; Mon, 16 Feb 2026 07:39:54 -0500 (EST) Received: from [172.19.199.9] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 6A5D441BAE; Mon, 16 Feb 2026 07:31:41 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 303943F94B; Mon, 16 Feb 2026 07:31:36 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 710B741878 for ; Mon, 16 Feb 2026 07:28:33 -0500 (EST) Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-464-WMmWoCg_OgO2-9tCwc7PsA-1; Mon, 16 Feb 2026 07:28:31 -0500 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id DE5461956089 for ; Mon, 16 Feb 2026 12:28:30 +0000 (UTC) Received: from antique-laptop.rosnicka.net (unknown [10.45.242.10]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 12F9830001A5 for ; Mon, 16 Feb 2026 12:28:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1771244913; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=HJCtW/M23Hbu2Udt3glPRlTrZEhv1//1eZHYI7rwVHs=; b=ZZYYPm5ZHml49yp2VxZ5tsM5b5AFKM9/gHgVQF89n3M7psfelXMcnEp9xWPZjhQzEGfGFH PrVj+pp6D4gQ8RipgMA7XOVA3F1gBFN4WztkiWN5bYANeBuLXgbhU/UACPW1PzKBPtU9s7 AAEw00w6MAQGz6APp6Wdx3FFrHX9RvI= X-MC-Unique: WMmWoCg_OgO2-9tCwc7PsA-1 X-Mimecast-MFC-AGG-ID: WMmWoCg_OgO2-9tCwc7PsA_1771244911 To: devel@lists.libvirt.org Subject: [libvirt PATCH 11/24] qemu_process: Fix FD leak with multiple host devices using IOMMUFD Date: Mon, 16 Feb 2026 13:28:03 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: vPJKYUgPthnp1QQRfvO8zWH_dt7XYYj1mvhknxH6NFI_1771244911 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: RAALITJMRONZ7YSX2PVXORSD2DY2JMVX X-Message-ID-Hash: RAALITJMRONZ7YSX2PVXORSD2DY2JMVX X-MailFrom: phrdina@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Pavel Hrdina via Devel Reply-To: Pavel Hrdina X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1771245596364158500 Content-Type: text/plain; charset="utf-8"; x-default="true" 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 --- src/qemu/qemu_process.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) 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; } } =20 + /* Open IOMMU FD */ + if (virDomainDefHasPCIHostdevWithIOMMUFD(vm->def) && + qemuProcessOpenIommuFd(vm) < 0) { + return -1; + } + return 0; } =20 --=20 2.53.0