From nobody Mon May 25 19:46:41 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=ovhcloud.com ARC-Seal: i=1; a=rsa-sha256; t=1776690719; cv=none; d=zohomail.com; s=zohoarc; b=kmRo46jyUp2LU2Qgva76C7JvrO0+lxEL3wKa29jSrRUMefOuOvBVFVrhG5yZDgkrsluHLm41NaaWd2ZACEPLyU/2/jiXBHzx3BvzS3JDbsKy0RmMOiNsq5ZGws2mxv+m/feTDjhCyJbFZBfNybAwQN8P93XnQBcNWKfzmz+cRL4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776690719; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=URDMN/yvlc4ZXR//3D/dKeNhmfeONht869K/kqkyT8A=; b=HN/3YCt0+SZUiwO3F8bETbGOyj8P9UZ+tZemgR/duY0EKRxoeU+9c+rzoAP5QFH722CoF+OaFTXXKPtgg4R8qFsqxOolH3AhEaBRH/cMgp0ntjlpsSs5k64XfAvBy9K7UsMbEC0nfCVWDPffEW7mCD/3bGzRY4NMdf4h79Jp+/w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1776690719201659.1061259335956; Mon, 20 Apr 2026 06:11:59 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id A14F7418B2; Mon, 20 Apr 2026 09:11:57 -0400 (EDT) Received: from [172.19.199.6] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 5E50E4186D; Mon, 20 Apr 2026 09:11:04 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id DE71241815; Mon, 20 Apr 2026 09:10:50 -0400 (EDT) Received: from 1.mo508.mail-out.ovh.net (1.mo508.mail-out.ovh.net [5.135.90.176]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id AE76F41814 for ; Mon, 20 Apr 2026 09:10:48 -0400 (EDT) Received: from DAGFR9EX2.OVH.local (unknown [10.109.254.248]) by mo508.mail-out.ovh.net (Postfix) with ESMTPS id 4fzm0L2PpJz7tGX for ; Mon, 20 Apr 2026 13:04:18 +0000 (UTC) Received: from laptop1784739.gns.ovh.net (109.190.254.33) by DAGFR9EX2.OVH.local (172.16.2.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.2562.37; Mon, 20 Apr 2026 15:04:18 +0200 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 From: Baptiste Daroussin To: Subject: [PATCH 1/2] virpci: don't fail VFIO passthrough when modules.alias is missing Date: Mon, 20 Apr 2026 15:02:57 +0200 Message-ID: <20260420130258.21376-2-baptiste.daroussin@ovhcloud.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260420130258.21376-1-baptiste.daroussin@ovhcloud.com> References: <20260420130258.21376-1-baptiste.daroussin@ovhcloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [109.190.254.33] X-ClientProxiedBy: CAS3.OVH.local (172.16.1.3) To DAGFR9EX2.OVH.local (172.16.2.27) X-OVH-CORPLIMIT-SKIP: true x-ovh-tracer-id: 2617154336302682182 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: dmFkZTFn3o67Vw/dibzUoJm6Ei6sb0ZOyurwIA9NXum7myQRp8zv42EQaIvcoNq8C/m0WzeyfxvD67iUXzfElQ+wDbRewiKsWe7FGtS3PgtHDzg8HT8mvi4cZRvrChaUpy/+c6Qk4yR67y4JuyuGOcE63q7YzrRW22xu1KdtiiX6UtVnwOJU3lVjSsOd4anAay88RVuB3Gq3nRieveaPEHEeRgqdaw0roq92tzqmTCnM9wNMfUj72k6dsG8P1XmC2oK/yX3whJKg4qw7kkrF8TF31Kvf0tf+Bc5fUgJ7mD2glP3XEbCFEVbN5arjR0dQ18FvJ/TUXhtR0mN0AdvuNz1bazVCrwSHO+CmfNhJXORQ8gzlU57aKRCOeVaWahFkcaVlIWAbFHQlKM+w8w7EzMYXGbseKNVrMiT8OPgiG2a6X1HqKvixeSpKXP3RuHNz2xTV2ZpAT+uzjjIyEPwtSwGwimx7MML3zrciHnSeDZwOYfXPCSkUIRwAz/X59sy4qCltLDfpO/puAEcX1E2q1VYY7PAiFEKg/HNGojPSm09O9xr0PgRfIYKwUaaPvI7Uh5pj1j8PigWxqUzlWQC6MxjGKxvqfv74nzsF7kScobU2MyLjDvkun+LLe4bzH9swI5KBDF4i776giM7G1HcVcwqW3yOkTuTWYCguCrz6gF3p89HZPg DKIM-Signature: a=rsa-sha256; bh=URDMN/yvlc4ZXR//3D/dKeNhmfeONht869K/kqkyT8A=; c=relaxed/relaxed; d=ovhcloud.com; h=From; s=mailout; t=1776690258; v=1; b=VSgMP85T0UVXMMmgzrMbD5hX8/qJ/5XLP+qo+/nDMHHp3fqRaQ2H8PY/EMn3LBnRdiAF1mcM Va4GjVd4Whe138IbvStZb8FQ3GMAET2YTJx7Np4l19Z9fuR0cXpLn7BUDLN+a533DPajinPSQyW XWbRO+Ny6lON+oR/Ov+hpoP8= Message-ID-Hash: XTLRSGQZCADO3E5ODPRLL4ARKIMKLWPE X-Message-ID-Hash: XTLRSGQZCADO3E5ODPRLL4ARKIMKLWPE X-MailFrom: baptiste.daroussin@ovhcloud.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 CC: Baptiste Daroussin X-Mailman-Version: 3.3.10 Precedence: list Reply-To: baptiste.daroussin@ovhcloud.com List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @ovhcloud.com) X-ZM-MESSAGEID: 1776690721957158500 Content-Type: text/plain; charset="utf-8" When modules.alias is not available (e.g. monolithic kernel), virPCIDeviceFindBestVFIOVariant() would fail, causing the entire PCI device detach to abort. Instead, log a warning and return success with no variant found, allowing the caller to fall back to the generic vfio-pci driver. Signed-off-by: Baptiste Daroussin Reviewed-by: Peter Krempa --- src/util/virpci.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/util/virpci.c b/src/util/virpci.c index d43fa1ef54..fa04264a95 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -1459,6 +1459,12 @@ virPCIDeviceFindBestVFIOVariant(virPCIDevice *dev, =20 uname(&unameInfo); modulesAliasPath =3D g_strdup_printf("/lib/modules/%s/modules.alias", = unameInfo.release); + if (!virFileExists(modulesAliasPath)) { + /* on monolithic kernel this file does not exist */ + VIR_DEBUG("modules.alias not available (%s), skipping VFIO variant= detection", + modulesAliasPath); + return 0; + } if (virFileReadAll(modulesAliasPath, 8 * 1024 * 1024, &modulesAliasCon= tent) < 0) return -1; =20 --=20 2.43.0 From nobody Mon May 25 19:46:41 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=none dis=none) header.from=ovhcloud.com ARC-Seal: i=1; a=rsa-sha256; t=1776690820; cv=none; d=zohomail.com; s=zohoarc; b=I7r5RoV6c1EsM62osLrrkoMWB0zqk2Xfeg3OUQJHsMEh+GA7ps+f6zzdrjRCQtP+jxuxEG08xrsxaFMWrKrqgb6D9G0mBI1MIUAw4HvDKQivjCLuk9odBhdm6YgqLhZKK2mGZsFr+jIZK2aQp1nLhJRTZGwvswBTkA90usC0Fu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776690820; h=Content-Type:Content-Transfer-Encoding:Cc:Cc: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; bh=Fx10lD4pP++5KTS4ei/pXeaHtJN7+SB7buBubhB+Vgg=; b=TZYxYQvVJiSxfclzLzjk2UdV4yn4p5ar83KHLkwP2+1xU20fEZysIDhVuPogXkKtm8F4HPPg9h3ehlf/SX0ZJJRV57OP8/+KMJlHz+rCaydMddaMZ5BvfyBUETG1wlmwvFob2jkPuWy395j5Jh8HDwES7NI6tcMFYZamr1UqJi8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1776690819995421.6356671679707; Mon, 20 Apr 2026 06:13:39 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E970941856; Mon, 20 Apr 2026 09:13:38 -0400 (EDT) Received: from [172.19.199.6] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id CB3ED4195C; Mon, 20 Apr 2026 09:12:51 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 3F96241822; Mon, 20 Apr 2026 09:12:41 -0400 (EDT) Received: from 1.mo15.mail-out.ovh.net (1.mo15.mail-out.ovh.net [5.135.90.178]) (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 DA1F44188C for ; Mon, 20 Apr 2026 09:11:08 -0400 (EDT) Received: from DAGFR9EX2.OVH.local (unknown [10.110.58.209]) by mo15.mail-out.ovh.net (Postfix) with ESMTPS id 4fzm0V6pKDz3wrT for ; Mon, 20 Apr 2026 13:04:26 +0000 (UTC) Received: from laptop1784739.gns.ovh.net (109.190.254.33) by DAGFR9EX2.OVH.local (172.16.2.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.2562.37; Mon, 20 Apr 2026 15:04:26 +0200 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 From: Baptiste Daroussin To: Subject: [PATCH 2/2] virpci: don"t fail VFIO passthrough when /sys/module/*/drivers is inaccessible Date: Mon, 20 Apr 2026 15:02:58 +0200 Message-ID: <20260420130258.21376-3-baptiste.daroussin@ovhcloud.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260420130258.21376-1-baptiste.daroussin@ovhcloud.com> References: <20260420130258.21376-1-baptiste.daroussin@ovhcloud.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [109.190.254.33] X-ClientProxiedBy: CAS3.OVH.local (172.16.1.3) To DAGFR9EX2.OVH.local (172.16.2.27) X-OVH-CORPLIMIT-SKIP: true x-ovh-tracer-id: 2619406136148742214 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: 0 X-VR-SPAMCAUSE: dmFkZTFOBM7ATM9c4n82kjmy0uUEpexi/G2ApSDWppenGLCknMxd6EsUt9uPST991u6oApF228X2JX/UNbxLmC+mqLn3PfCKhm4U/x8EyTkMMbQyJG2tF8LfWnsziT4l88AhbXo6l3m3qymE8bjbDnWOS5qi6BlDarefDSiwwKvw6mKErIsVAHOfQB8Pb9gsELEKGveNlDfDj5hU9ereSwPffNFOmN31z+VthPM4PUcPHT97vQmM+jl/KL3jkCSlzfeFeQepd5l8cuJeXRrqn77Yc+aqhvdYDPFnSoXAt3eE5AtFOynI2G73Hw/ycHJGyQoZt4fQaCJ3+rJ1ZtV/4tgN5CLjTfXAWIwDidrXVIudKRvHA93WFsFzFMPhquy2JZxGKWe8jIcMsUD+MKFd/kkGV1tpzZ77cYbFes0tUm4b/LbacfUQnD0sI7/oXRBsL4drjeFyg+wW9w2GpMmWWzl7i4KNoKfb0LlLZ2ndyCNJ1das9hDFmLK4Zh0zUSfJY5AITpU8fbWivQ58gwzWFty9XuSDfv1cUDPzpi2sAqI4z5Sh1MC58NhZCtcyK6JOZcz6p1zxi/5PvGfhwkULIWDCu5JP3cmPSDx6WN/IJ5F6Ddm7hG+BTkmbhbqxsViLqOdb4u59I9BYWaDHsnIDAIJ2S04onurL4uAexU/55grMmbHfJw DKIM-Signature: a=rsa-sha256; bh=Fx10lD4pP++5KTS4ei/pXeaHtJN7+SB7buBubhB+Vgg=; c=relaxed/relaxed; d=ovhcloud.com; h=From; s=mailout; t=1776690267; v=1; b=oZCFiUxwjlXytS+5ELc4WoiXnCXE3aen+l5y6OVp1gLGqAp1bu1VkBZrYK0uzikyWWxGA/wF l6pkAScM7QYZXni+fMTxedJA3Pg4B/M6+VvTir0Iq6IiLxgSpA0yUT4ia60qfxgW59qpvq4YQgu EdHUJagUEOFllVIN7ZtSiKG8= Message-ID-Hash: D2MSRTRQHEXEHFRBCFBR36PGN44YVJNM X-Message-ID-Hash: D2MSRTRQHEXEHFRBCFBR36PGN44YVJNM X-MailFrom: baptiste.daroussin@ovhcloud.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 CC: Baptiste Daroussin X-Mailman-Version: 3.3.10 Precedence: list Reply-To: baptiste.daroussin@ovhcloud.com List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-ZohoMail-DKIM: pass (identity @ovhcloud.com) X-ZM-MESSAGEID: 1776690822290158500 Content-Type: text/plain; charset="utf-8" On monolythic kernel /sys/modules/*/drivers may not exist (ENOENT) On kernels with enhanced security (e.g. grsecurity), it might not be accessible: EACCESS or EPERM. Directly try to open if it fails with any of those errors, we fallback on the module name. Signed-off-by: Baptiste Daroussin Reviewed-by: Peter Krempa --- src/util/virpci.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/util/virpci.c b/src/util/virpci.c index fa04264a95..ec22eac7c9 100644 --- a/src/util/virpci.c +++ b/src/util/virpci.c @@ -1287,8 +1287,21 @@ virPCIDeviceFindDriver(virPCIDevice *dev) =20 moduleDriversDir =3D g_strdup_printf("/sys/module/%s/drivers", moduleN= ame); =20 - if (virDirOpen(&dir, moduleDriversDir) < 0) + if (virDirOpenQuiet(&dir, moduleDriversDir) < 0) { + /* with monolithic kernels this directory will not exist: ENOENT + * with hardened system like grsecurity or any MAC frameowrk it mi= ght be be accessible: + * EACCESS or EPERM. + */ + if (errno =3D=3D ENOENT || errno =3D=3D EACCES || errno =3D=3D EPE= RM) { + VIR_DEBUG("driver directory not available (%s), using module n= ame as driver name", + moduleDriversDir); + g_free(dev->stubDriverName); + dev->stubDriverName =3D g_steal_pointer(&moduleName); + return 0; + } + virReportSystemError(errno, _("cannot open directory '%1$s'"), mod= uleDriversDir); return -1; + } =20 while (virDirRead(dir, &ent, moduleDriversDir) > 0) { =20 --=20 2.43.0