From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776646; cv=none; d=zohomail.com; s=zohoarc; b=UKe97h/QdE4htUS/onPNCenwZg/G8jRyJk7nkRXU2ruArsnIaCR4YBbr+hfv+tTvXPizUnBsRG7Da4YLpWifeZZW28bizpSDoFNauseLHzz/LgHtivUBSKKdsIopMj3Qdo5CayIw/5ZF2TZIjOz4Gyk8pHdKJ84pvHX8ckUNdXE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776646; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=UGp5LxAmYWTKuDMXym/h2A+YdJTwFfJW4kvCbf6qbNk=; b=YIV2A+8rjayIuIKDNVNyVTiY8zu8xrsRxGS6CgWfsAULJeNZKtitAbmfXD2vsxWPLo0CkOJSNyqnQcbcvTcKzwis8rpL9M+8we8JZMLNavw84ZBZ9zkUq22iyCsc6+gJw4BnukA1FlAoerCt41wBPtdCNxNLO8PLlH69Sl0QBbg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776646522198.383522745218; Tue, 17 Mar 2026 12:44:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJf-0007Rc-R8; Tue, 17 Mar 2026 15:42:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJW-0007Nd-CG for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:51 -0400 Received: from mail-pj1-x1035.google.com ([2607:f8b0:4864:20::1035]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJT-0006yi-S4 for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:49 -0400 Received: by mail-pj1-x1035.google.com with SMTP id 98e67ed59e1d1-354bc7c2c46so3500486a91.0 for ; Tue, 17 Mar 2026 12:42:47 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776566; x=1774381366; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UGp5LxAmYWTKuDMXym/h2A+YdJTwFfJW4kvCbf6qbNk=; b=VnV/+WKgJvGMJRmw6Yvg4WrQZ81EmwFpPZX7NufgYKFlyrn43UXfSm9QshLwcuP4GT jLDOnsqhCAY23Oz3V3RLnoHptSMfAe1MZr/XTug30ZG+n0f8pXppIkNZyfZtWCtLJkMn mXo2rbvd9dYJnLjo18dQ9FJIav51tb7gamJYjbFgoBbiXZ0c6pH6/zFNdM8QYNyiuyiE vHPayF/raNFMf2zjbdOUxyWVBOAJlj9S1jpZRVQyLYxbhTdsvJfz/TM3R+s4H3n47R6c 6SO0xjQ0OrS3LHEtlFdVGZxKSunRMAAe4XQi23RBEnGPKqy2Cv8RQt6W1ue5T+39yFNw Yh1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776566; x=1774381366; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UGp5LxAmYWTKuDMXym/h2A+YdJTwFfJW4kvCbf6qbNk=; b=fjjIhsMnk8ZwR8JW70OsYNzGeHy+V0mffMnkl/kOKQ7ep6g5MI3S58At5OebXdjX9e HnuuuuAxa62i6YnEGZ54o2XogWyC+TXNVr3XLnsxcDv5n6U66evcRdSjFLFfNikB4A8o nV/J5ja4+D9G38UmWl7G1IZ9FwW4FoT/R4Rjo67/gqIfWS5azm7r4yiUjEUrzIHiSHDF 5xig/W5D1HxFbgjRTpfP+Y7usRXaNodyGAYw+OKAXLOGdwWdlZQ8wy9EZ81GNoafARku P9lTvsAREpTRiNl9I1nT2wgiBp/Q0WJdHzqr2I9huykQpq9G4GXyA4NT75CC6C0lq7wa h7ZA== X-Gm-Message-State: AOJu0Yy3/cbhFQnGmg4u+5zRWKcwP8e0RSBPjkhUHcChOY+C1DkV9KMg wZOBBSQnilN1i/B1GAzXuqKbUa7FrACpVYjX9LLmjykuujF519svu6IOqyev2fD9nO1j+mXcN+m EonWNHdc= X-Gm-Gg: ATEYQzzMeTR5JBlAaeoC0N+L2Lq/KHooZ6/rbW7HVX8+uCIy1bIrDiSBjl9QlCy7CdX 5tw85oujWxZ/TiTzA0XnMGP3IYjEoJ5muS5hXUmpRGUfpqMKJD6sEUfr6dS3/tOLoYrGwtwwtNX vzFdZY5qjjE666UYbHRI5lcUpzwpdIv1ij6IftiQDpeL/9Y9P2Dm59d83qu0Tq0UZhOT6Grj6Xv EDoq3UvP4p4c/BNh8mF8ksKK+uU6hefY6+vfhZ0GKkGggjXXeZ/7dyMh6JSFR6qX7BXUq97CG7L Or+nT9GOKXCHR3nQAFY+h24AIEU+/UZI4p/htE2cPRucrbL6hi23vfl9c/G+Wz60cJulOzGr6XE xxF9CreZVyCJSalH5bSwEiDBiZ0uQCgVChz3vKDe+CPMqgpszbXIMcll7DJI/Zkjkv5w9NrsVlN /Hu2Q7Q4MJCgrYoBbmzVQ5RxhTdYKniVSNFZMqRxhghjRm6HjawhXm/oHrT/pd2QTtwidlDO0Ji 6nl X-Received: by 2002:a17:90b:510f:b0:35b:945d:752a with SMTP id 98e67ed59e1d1-35bb9ef607cmr564798a91.17.1773776566106; Tue, 17 Mar 2026 12:42:46 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 1/8] hw/vfio/listener.c: remove CONFIG_KVM Date: Tue, 17 Mar 2026 12:42:34 -0700 Message-ID: <20260317194241.869568-2-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1035; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1035.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776649068154100 Code concerned is under a kvm_enabled() guard. Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/vfio/listener.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hw/vfio/listener.c b/hw/vfio/listener.c index 960da9e0a93..31c3113f8fb 100644 --- a/hw/vfio/listener.c +++ b/hw/vfio/listener.c @@ -20,9 +20,7 @@ =20 #include "qemu/osdep.h" #include -#ifdef CONFIG_KVM #include -#endif #include =20 #include "exec/target_page.h" @@ -303,11 +301,9 @@ static bool vfio_ram_discard_register_listener(VFIOCon= tainer *bcontainer, if (bcontainer->dma_max_mappings) { unsigned int vrdl_count =3D 0, vrdl_mappings =3D 0, max_memslots = =3D 512; =20 -#ifdef CONFIG_KVM if (kvm_enabled()) { max_memslots =3D kvm_get_max_memslots(); } -#endif =20 QLIST_FOREACH(vrdl, &bcontainer->vrdl_list, next) { hwaddr start, end; --=20 2.47.3 From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776661; cv=none; d=zohomail.com; s=zohoarc; b=TuRnUyaeOZlQ/gKd9+R7EDTQq8jTgM532r/lyYkHP0zxoO1ZzEUoqFcsxdwAzQK3uEBtlzz7KHCjHhab9cnMJwl1G9Ezx6ODDhL2YZnIZLofYx7aeTht0NoTRNVQOPCK90wn/nHgUJENjbfNLsCvBrLlk26K99QBJBVdJiJpQRA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776661; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Wg3l86J4Mr25+rkQyEjziZ0gWLQDxkgWnrfmi6Gz93U=; b=fBuY4cQBGZWym+GT5Sd0jkPwwOaMQna9CER7dEmSVcuwTZaO8Pcih6yjrdsVxEuRnnxVKRzQRZR2mN5pTPB54eC+2IVlMG/g/FsCQXf8hgCcS8TAB4/JSYOxJuATdUQyeDECpkuMRZTEkuJj/I0Fg6B8oeeMvzBs85IgJnz4WWw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776661184870.2832630902327; Tue, 17 Mar 2026 12:44:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJh-0007To-CD; Tue, 17 Mar 2026 15:43:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJa-0007P7-D2 for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:55 -0400 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJW-00070t-3Y for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:53 -0400 Received: by mail-pj1-x1029.google.com with SMTP id 98e67ed59e1d1-35a1cc6e478so3302699a91.0 for ; Tue, 17 Mar 2026 12:42:48 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776567; x=1774381367; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Wg3l86J4Mr25+rkQyEjziZ0gWLQDxkgWnrfmi6Gz93U=; b=Pk36eyPgxBTjdGiZS0UUeXN9JAdrf2YJ/Dg9USKlCdfNBhAuQdFNijBtWvxVrqrPzm hSqGvgE8drTPLElrMCEDrrvMAW9aV4cz0RVIOUygF4IW3KUe6C5Et5dGZbjeMsgS8Tey xipcVPxtkU3SXOmwrAHVp31zgJS4any2h3zWVwrFYf/x/ukHeW5oaMU23qfF4NNN/4Pb 3+GZa60QhelZmx4Xf+46DswxSvbca3TdFr2lKzBxGl+A35F+ewuqM/dVuzE3EEY55LT8 nn0urtLYS43T3V3bCWw47GW6peVgxzqI54pPARKAZdKTmHNZOspuOd2kJb7+jrf0JARl q93A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776567; x=1774381367; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Wg3l86J4Mr25+rkQyEjziZ0gWLQDxkgWnrfmi6Gz93U=; b=ihCYlO8wtsSND/qmWafW1kp4k+imzsuFHnbQOi7NrTvjEgxCEA+EWXKu2YfL9u4m+o OjW17WkoMc1Ww8tuSYDjxaN9AueAE9LWjVxHo1azB1EpDSWZ/Dpc6a1uJ2MLDjR3KYq1 MLaR7/I+qQHi2nlOn8sjlxoipbp/IxRjFFDgEH34wgD/B7Gj0mkxEu+kZz+wN4PuUNHF qLGAU6IZ2fjNMWFeO2iZhHUmJqPXeKUxGMjP/Nx0D8u/EeV6iZ/XGp32CSWUw6l2CHjm ipYcBJ0uhNMWrgUNrpCUoMgrK3efkCKsFfHQOKZe5yrX48kQknQwZlmVy5+gHSVpcvLu lJYQ== X-Gm-Message-State: AOJu0YzPkEcit2dbhbXsXwjFEn/+OtjpkjDqT8R66x9h0nvZ+akrwjW9 jfV0eb2fIFRqFbSpIM/GXJJ8CukwE5eKurspDalp0IwnFquHYgJys3zhGSE1554DMjR15z64gwI gOuQuGdI= X-Gm-Gg: ATEYQzxfhjtwMVIGnRWg6kVPDBd/LzEBQXLc5TzPH31XJvo7t79hsRIMG7oihiR28JI IHKAVHRU6zbpQSYqcqkiifmmDwq+/Q1ndS++XNJZn47qU/+xT0aVR7FVtXX33sHGkAkRNG2bFkd Kl8xFcZu+ZVwvb9i2VJzm1LIDTCbmHgEVFs41Pmd1FCTodjsqogDtAS5XULx77Pg1oYs0gfYhga eTaLXxc64hDSpd4/PPaOcvk930d3//aiCy5+pg9AZ7OQDAg7V07Pg3wsDOwMdc4tU5elV3ppxAb AWJLRxyyhUcVQB9LoApjhsM72wfg6pFNxCIGBpOAYcHtkoj+z6fr8aT250ch1I9oi219vozcgzi mFo/9Lr61/WhmxMSGbcRkXb8/jOmuEvQICw0rA3TNYLZthAXRI5WZdhMZBIoh0GtRRB21e4zoQZ P2RmGyEXEQmvkVGBDx86oX1vTm6fN+mh/GnyHfw5X11nmleE67MZBFlG4MbScarQoIQfXWJFMeQ 58h X-Received: by 2002:a17:90b:4d85:b0:35b:a656:a60e with SMTP id 98e67ed59e1d1-35bb9eb48d9mr517815a91.10.1773776566890; Tue, 17 Mar 2026 12:42:46 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 2/8] hw/vfio/helpers.c: extract kvm helpers in kvm-helpers.c Date: Tue, 17 Mar 2026 12:42:35 -0700 Message-ID: <20260317194241.869568-3-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1029; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1029.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776661822158500 Because those functions use kvm specific types, they need to be isolated in another source file. This allows us to link kvm-helpers only in configurations with CONFIG_KVM. Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/vfio/helpers.c | 172 ------------------------------------- hw/vfio/kvm-helpers.c | 192 ++++++++++++++++++++++++++++++++++++++++++ hw/vfio/kvm-stubs.c | 26 ++++++ hw/vfio/meson.build | 2 + 4 files changed, 220 insertions(+), 172 deletions(-) create mode 100644 hw/vfio/kvm-helpers.c create mode 100644 hw/vfio/kvm-stubs.c diff --git a/hw/vfio/helpers.c b/hw/vfio/helpers.c index 00d42d3b98e..65c6dba0428 100644 --- a/hw/vfio/helpers.c +++ b/hw/vfio/helpers.c @@ -22,7 +22,6 @@ #include "qemu/osdep.h" #include =20 -#include "system/kvm.h" #include "exec/cpu-common.h" #include "hw/vfio/vfio-device.h" #include "hw/core/hw-error.h" @@ -107,177 +106,6 @@ bool vfio_get_info_dma_avail(struct vfio_iommu_type1_= info *info, return true; } =20 -#ifdef CONFIG_KVM -/* - * We have a single VFIO pseudo device per KVM VM. Once created it lives - * for the life of the VM. Closing the file descriptor only drops our - * reference to it and the device's reference to kvm. Therefore once - * initialized, this file descriptor is only released on QEMU exit and - * we'll re-use it should another vfio device be attached before then. - */ -int vfio_kvm_device_fd =3D -1; - -/* - * Confidential virtual machines: - * During reset of confidential vms, the kvm vm file descriptor changes. - * In this case, the old vfio kvm file descriptor is - * closed and a new descriptor is created against the new kvm vm file - * descriptor. - */ - -typedef struct VFIODeviceFd { - int fd; - QLIST_ENTRY(VFIODeviceFd) node; -} VFIODeviceFd; - -static QLIST_HEAD(, VFIODeviceFd) vfio_device_fds =3D - QLIST_HEAD_INITIALIZER(vfio_device_fds); - -static void vfio_device_fd_list_add(int fd) -{ - VFIODeviceFd *file_fd; - file_fd =3D g_malloc0(sizeof(*file_fd)); - file_fd->fd =3D fd; - QLIST_INSERT_HEAD(&vfio_device_fds, file_fd, node); -} - -static void vfio_device_fd_list_remove(int fd) -{ - VFIODeviceFd *file_fd, *next; - - QLIST_FOREACH_SAFE(file_fd, &vfio_device_fds, node, next) { - if (file_fd->fd =3D=3D fd) { - QLIST_REMOVE(file_fd, node); - g_free(file_fd); - break; - } - } -} - -static int vfio_device_fd_rebind(NotifierWithReturn *notifier, void *data, - Error **errp) -{ - VFIODeviceFd *file_fd; - struct kvm_device_attr attr =3D { - .group =3D KVM_DEV_VFIO_FILE, - .attr =3D KVM_DEV_VFIO_FILE_ADD, - }; - struct kvm_create_device cd =3D { - .type =3D KVM_DEV_TYPE_VFIO, - }; - - /* we are not interested in pre vmfd change notification */ - if (((VmfdChangeNotifier *)data)->pre) { - return 0; - } - - if (kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd)) { - error_setg_errno(errp, errno, "Failed to create KVM VFIO device"); - return -errno; - } - - if (vfio_kvm_device_fd !=3D -1) { - close(vfio_kvm_device_fd); - } - - vfio_kvm_device_fd =3D cd.fd; - - QLIST_FOREACH(file_fd, &vfio_device_fds, node) { - attr.addr =3D (uint64_t)(unsigned long)&file_fd->fd; - if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr)) { - error_setg_errno(errp, errno, - "Failed to add fd %d to KVM VFIO device", - file_fd->fd); - return -errno; - } - } - return 0; -} - -static struct NotifierWithReturn vfio_vmfd_change_notifier =3D { - .notify =3D vfio_device_fd_rebind, -}; - -#endif - -void vfio_kvm_device_close(void) -{ -#ifdef CONFIG_KVM - kvm_close(); - if (vfio_kvm_device_fd !=3D -1) { - close(vfio_kvm_device_fd); - vfio_kvm_device_fd =3D -1; - } -#endif -} - -int vfio_kvm_device_add_fd(int fd, Error **errp) -{ -#ifdef CONFIG_KVM - struct kvm_device_attr attr =3D { - .group =3D KVM_DEV_VFIO_FILE, - .attr =3D KVM_DEV_VFIO_FILE_ADD, - .addr =3D (uint64_t)(unsigned long)&fd, - }; - - if (!kvm_enabled()) { - return 0; - } - - if (vfio_kvm_device_fd < 0) { - struct kvm_create_device cd =3D { - .type =3D KVM_DEV_TYPE_VFIO, - }; - - if (kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd)) { - error_setg_errno(errp, errno, "Failed to create KVM VFIO devic= e"); - return -errno; - } - - vfio_kvm_device_fd =3D cd.fd; - /* - * If the vm file descriptor changes, add a notifier so that we can - * re-create the vfio_kvm_device_fd. - */ - kvm_vmfd_add_change_notifier(&vfio_vmfd_change_notifier); - } - - if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr)) { - error_setg_errno(errp, errno, "Failed to add fd %d to KVM VFIO dev= ice", - fd); - return -errno; - } - - vfio_device_fd_list_add(fd); -#endif - return 0; -} - -int vfio_kvm_device_del_fd(int fd, Error **errp) -{ -#ifdef CONFIG_KVM - struct kvm_device_attr attr =3D { - .group =3D KVM_DEV_VFIO_FILE, - .attr =3D KVM_DEV_VFIO_FILE_DEL, - .addr =3D (uint64_t)(unsigned long)&fd, - }; - - if (vfio_kvm_device_fd < 0) { - error_setg(errp, "KVM VFIO device isn't created yet"); - return -EINVAL; - } - - if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr)) { - error_setg_errno(errp, errno, - "Failed to remove fd %d from KVM VFIO device", fd= ); - return -errno; - } - - vfio_device_fd_list_remove(fd); -#endif - return 0; -} - struct vfio_device_info *vfio_get_device_info(int fd) { struct vfio_device_info *info; diff --git a/hw/vfio/kvm-helpers.c b/hw/vfio/kvm-helpers.c new file mode 100644 index 00000000000..d71c9590aaa --- /dev/null +++ b/hw/vfio/kvm-helpers.c @@ -0,0 +1,192 @@ +/* + * low level and IOMMU backend agnostic helpers used by VFIO devices, + * related to regions, interrupts, capabilities + * + * Copyright Red Hat, Inc. 2012 + * + * Authors: + * Alex Williamson + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * Based on qemu-kvm device-assignment: + * Adapted for KVM by Qumranet. + * Copyright (c) 2007, Neocleus, Alex Novik (alex@neocleus.com) + * Copyright (c) 2007, Neocleus, Guy Zana (guy@neocleus.com) + * Copyright (C) 2008, Qumranet, Amit Shah (amit.shah@qumranet.com) + * Copyright (C) 2008, Red Hat, Amit Shah (amit.shah@redhat.com) + * Copyright (C) 2008, IBM, Muli Ben-Yehuda (muli@il.ibm.com) + */ + +#include "qemu/osdep.h" +#include + +#include +#include "system/kvm.h" +#include "exec/cpu-common.h" +#include "hw/vfio/vfio-device.h" +#include "hw/core/hw-error.h" +#include "qapi/error.h" +#include "vfio-helpers.h" + +/* + * We have a single VFIO pseudo device per KVM VM. Once created it lives + * for the life of the VM. Closing the file descriptor only drops our + * reference to it and the device's reference to kvm. Therefore once + * initialized, this file descriptor is only released on QEMU exit and + * we'll re-use it should another vfio device be attached before then. + */ +int vfio_kvm_device_fd =3D -1; + +/* + * Confidential virtual machines: + * During reset of confidential vms, the kvm vm file descriptor changes. + * In this case, the old vfio kvm file descriptor is + * closed and a new descriptor is created against the new kvm vm file + * descriptor. + */ + +typedef struct VFIODeviceFd { + int fd; + QLIST_ENTRY(VFIODeviceFd) node; +} VFIODeviceFd; + +static QLIST_HEAD(, VFIODeviceFd) vfio_device_fds =3D + QLIST_HEAD_INITIALIZER(vfio_device_fds); + +static void vfio_device_fd_list_add(int fd) +{ + VFIODeviceFd *file_fd; + file_fd =3D g_malloc0(sizeof(*file_fd)); + file_fd->fd =3D fd; + QLIST_INSERT_HEAD(&vfio_device_fds, file_fd, node); +} + +static void vfio_device_fd_list_remove(int fd) +{ + VFIODeviceFd *file_fd, *next; + + QLIST_FOREACH_SAFE(file_fd, &vfio_device_fds, node, next) { + if (file_fd->fd =3D=3D fd) { + QLIST_REMOVE(file_fd, node); + g_free(file_fd); + break; + } + } +} + +static int vfio_device_fd_rebind(NotifierWithReturn *notifier, void *data, + Error **errp) +{ + VFIODeviceFd *file_fd; + struct kvm_device_attr attr =3D { + .group =3D KVM_DEV_VFIO_FILE, + .attr =3D KVM_DEV_VFIO_FILE_ADD, + }; + struct kvm_create_device cd =3D { + .type =3D KVM_DEV_TYPE_VFIO, + }; + + /* we are not interested in pre vmfd change notification */ + if (((VmfdChangeNotifier *)data)->pre) { + return 0; + } + + if (kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd)) { + error_setg_errno(errp, errno, "Failed to create KVM VFIO device"); + return -errno; + } + + if (vfio_kvm_device_fd !=3D -1) { + close(vfio_kvm_device_fd); + } + + vfio_kvm_device_fd =3D cd.fd; + + QLIST_FOREACH(file_fd, &vfio_device_fds, node) { + attr.addr =3D (uint64_t)(unsigned long)&file_fd->fd; + if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr)) { + error_setg_errno(errp, errno, + "Failed to add fd %d to KVM VFIO device", + file_fd->fd); + return -errno; + } + } + return 0; +} + +static struct NotifierWithReturn vfio_vmfd_change_notifier =3D { + .notify =3D vfio_device_fd_rebind, +}; + +void vfio_kvm_device_close(void) +{ + kvm_close(); + if (vfio_kvm_device_fd !=3D -1) { + close(vfio_kvm_device_fd); + vfio_kvm_device_fd =3D -1; + } +} + +int vfio_kvm_device_add_fd(int fd, Error **errp) +{ + struct kvm_device_attr attr =3D { + .group =3D KVM_DEV_VFIO_FILE, + .attr =3D KVM_DEV_VFIO_FILE_ADD, + .addr =3D (uint64_t)(unsigned long)&fd, + }; + + if (!kvm_enabled()) { + return 0; + } + + if (vfio_kvm_device_fd < 0) { + struct kvm_create_device cd =3D { + .type =3D KVM_DEV_TYPE_VFIO, + }; + + if (kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd)) { + error_setg_errno(errp, errno, "Failed to create KVM VFIO devic= e"); + return -errno; + } + + vfio_kvm_device_fd =3D cd.fd; + /* + * If the vm file descriptor changes, add a notifier so that we can + * re-create the vfio_kvm_device_fd. + */ + kvm_vmfd_add_change_notifier(&vfio_vmfd_change_notifier); + } + + if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr)) { + error_setg_errno(errp, errno, "Failed to add fd %d to KVM VFIO dev= ice", + fd); + return -errno; + } + + vfio_device_fd_list_add(fd); + return 0; +} + +int vfio_kvm_device_del_fd(int fd, Error **errp) +{ + struct kvm_device_attr attr =3D { + .group =3D KVM_DEV_VFIO_FILE, + .attr =3D KVM_DEV_VFIO_FILE_DEL, + .addr =3D (uint64_t)(unsigned long)&fd, + }; + + if (vfio_kvm_device_fd < 0) { + error_setg(errp, "KVM VFIO device isn't created yet"); + return -EINVAL; + } + + if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr)) { + error_setg_errno(errp, errno, + "Failed to remove fd %d from KVM VFIO device", fd= ); + return -errno; + } + + vfio_device_fd_list_remove(fd); + return 0; +} diff --git a/hw/vfio/kvm-stubs.c b/hw/vfio/kvm-stubs.c new file mode 100644 index 00000000000..5a489d1b711 --- /dev/null +++ b/hw/vfio/kvm-stubs.c @@ -0,0 +1,26 @@ +/* + * Stubs for kvm helpers + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" + +#include "hw/vfio/vfio-device.h" +#include "qapi/error.h" +#include "vfio-helpers.h" + +void vfio_kvm_device_close(void) +{ + return; +} + +int vfio_kvm_device_add_fd(int fd, Error **errp) +{ + return 0; +} + +int vfio_kvm_device_del_fd(int fd, Error **errp) +{ + return 0; +} diff --git a/hw/vfio/meson.build b/hw/vfio/meson.build index 82f68698fb8..f2a7728d3d0 100644 --- a/hw/vfio/meson.build +++ b/hw/vfio/meson.build @@ -7,6 +7,8 @@ vfio_ss.add(files( 'container-legacy.c', 'helpers.c', )) +vfio_ss.add(when: 'CONFIG_KVM', if_true: files('kvm-helpers.c')) +stub_ss.add(files('kvm-stubs.c')) vfio_ss.add(when: 'CONFIG_PSERIES', if_true: files('spapr.c')) vfio_ss.add(when: 'CONFIG_VFIO_PCI', if_true: files( 'pci-quirks.c', --=20 2.47.3 From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776640; cv=none; d=zohomail.com; s=zohoarc; b=jazf7r0AfBqmCQODSAupSKMMzFvn8tzBRSD8n73cKwJTDq5Z1cNjAzC+EBawCAFbwXXP2wlSUJ1daF4JEqEbF4642iqsjUXDPUBCxMNS7jtbJqs5KCI5qkVuWtrcPcJVRAG/R6wb9skjKvvwln56Tvh6S4QioHhAWNm6rinXpL0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776640; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ulMoUdwMDiHrvD5Zpn2ftSeLnR6XY1V16teWljLREWQ=; b=b2jcfEMpGsDcJVAUq7F3uv9dpX9pT2JzfuYttrrHKSc7EyU8xrRujK45U6CNlqOcadUbTkecnYA7n5D8amxLGTZdZS4UUvX16v0k/1JsVtbV3KF9mWNlmgUzf9Q+cLAyPKSCxoEg0G6kUVO5pAQ1TT8jDulrc3SV3RzntY0V6QU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776640420577.606715182716; Tue, 17 Mar 2026 12:44:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJg-0007Sa-7O; Tue, 17 Mar 2026 15:43:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJa-0007P6-CR for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:55 -0400 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJW-000750-4I for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:53 -0400 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-35b9d29480aso1974249a91.1 for ; Tue, 17 Mar 2026 12:42:48 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776568; x=1774381368; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ulMoUdwMDiHrvD5Zpn2ftSeLnR6XY1V16teWljLREWQ=; b=u/A30AXCI+8zEC9zecKUG8dY4jE+7ullskae+U833fHb4G/V1HpJFumJRXGzdst7Yh HUZ43UvoHcZdgZwEme9IWA402rYZEoJd8Gw49oVJ9qz/+wOtvgz+KNDpzGWXJ9TCDfma wy6Lo02TyXO8aVY8FpI7nXemcE6RKZE/oyR3Z/h9kU5f7wCc95kIfzR9LNnDb32KcDs8 BRCULe3xbg5cEc48tN+HKEE9WUC/YldapNZCri4LrBsICG3gy1DLnqVPDgwGECq42tNW ZBMsVl78L02LxdgPIgWzqOX2Ij9btblxRytgMqnDXof/cIbe5NpWd23HjyzyNtomWoLF ovvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776568; x=1774381368; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ulMoUdwMDiHrvD5Zpn2ftSeLnR6XY1V16teWljLREWQ=; b=Z9SQj/mD0KxamkDcKj0PXrqKeX1nWOm1y5rKEzHa04p20oNCuRYq9mxx9UMiu44TBC ojxwmrddNbFeZXiBctzfbHNGaMP84UXWgR9Rfo3vmei1DyZS5qQLyW0JUAWvr5uORUCP dAy74HVT4opc5lmWOmkbEsLFmX0oPlMd+pOkImIZDl4R3Y27OMY3wt3GkosZZUjYniRv 5LLsbfBGm/z/5WJVrzhjB4Rqx1QcpEBQMCQZXxr9/TodME8Q0bp8iHmadQLlI/49yPaQ tDNOox7MMs+/AmW4cCe3aR7u8yDKp6KA7GW5WYBX76M15PqGqeb8j9AJ9jsg26FX8Pzt OChA== X-Gm-Message-State: AOJu0YyjmlEobAjW1NXkBTAlaMhKCEPoSPy4THwHvhhooBmboaqK3m0K 3udi/S7kycVgz8qciNKzCPFw8cy7OgIjXK5g367jyXhCCIDimGO4FGozrFP3Pov4qI9P2wdVMPg nLb4jPBA= X-Gm-Gg: ATEYQzxX4u1v63kwrUWAa/wLgPDENp6er+Vs+96Uad/UxfG3b83kpetn8lPHNYsEj9D RPvHdnZMZrsSCkL1bYvdvNMloYdGqr/D90v5QBQDCSgqFOwm3Cfb6sJiel+VJE5buZ6aBTuN2lB XUVl60eZbIu+hGa+L7wjQgjJ/+beq10XtYtenUhfJcmMwUXbnjX4hcIeuFtY2naHAXDBx8IhYxq cvrlF7OHEibmcA/Y3ll4gRtfj/mXvZ67NoScmW6ghmfViSB2tKN8OwgDFWxFEtDt8YJVibEKNC8 R06Oc/6laBDZL4pklOKFdEm4BuB1YwM6okIieASh1wji66JY3WI5kuIbJJ40tqKpZTKQrD37AH8 5EIsEGxxMJy6XC6DSR/MdND4Uyy+11JEVg5eEIvaBDRxpfYSTVcQv8+8DPh55tGBGRuGj+g36Cm 4wmnJIfUN7yipFgrAdBZpbuZpyQOa73a+WMK1X/ev53mPmudY3fg6HSRlkOA4Ruly7rsI8vs9Y4 3/U X-Received: by 2002:a17:90b:1c01:b0:35b:99f8:964e with SMTP id 98e67ed59e1d1-35bb9e6e873mr579982a91.13.1773776567742; Tue, 17 Mar 2026 12:42:47 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 3/8] hw/vfio/pci-quirks.c: remove CONFIG_VFIO_IGD Date: Tue, 17 Mar 2026 12:42:36 -0700 Message-ID: <20260317194241.869568-4-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102c; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x102c.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776643014154100 Add stubs for needed functions. As well, we need to add pixman to qemuutil library dependencies since pixman is transitively included from pci.h header, which is needed to be able to include prototypes for stubs we declared. In file included from include/ui/console.h:4, from ../hw/vfio/vfio-display.h:12, from ../hw/vfio/pci.h:25, from ../hw/vfio/igd-stubs.c:9: include/ui/qemu-pixman.h:10:10: fatal error: pixman.h: No such file or dire= ctory 10 | #include | ^~~~~~~~~~ On OpenBSD, opengl headers are not available in default include path, and thus we need to add opengl to list of qemuutil dependencies. In file included from /home/root/qemu/include/ui/console.h:9: /home/root/qemu/include/ui/surface.h:11:11: fatal error: 'epoxy/gl.h' file = not found Finally, vfio_pci_hot_reset_info must be forwarded declared on non linux platforms: In file included from ../hw/vfio/igd-stubs.c:9: ../hw/vfio/pci.h:265:44: error: 'struct vfio_pci_hot_reset_info' declared i= nside parameter list will not be visible outside of this definition or decl= aration [-Werror] 265 | struct vfio_pci_hot_reset_info = **info_p); | Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier Signed-off-by: Pierrick Bouvier Tested-by: Philippe Mathieu-Daud=C3=A9 --- meson.build | 2 +- hw/vfio/pci.h | 2 ++ hw/vfio/igd-stubs.c | 20 ++++++++++++++++++++ hw/vfio/pci-quirks.c | 5 ----- hw/vfio/meson.build | 1 + 5 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 hw/vfio/igd-stubs.c diff --git a/meson.build b/meson.build index b2154bb9287..ab726ea1152 100644 --- a/meson.build +++ b/meson.build @@ -3781,7 +3781,7 @@ util_ss =3D util_ss.apply({}) libqemuutil =3D static_library('qemuutil', build_by_default: false, sources: util_ss.sources() + stub_ss.sources(= ) + genh, - dependencies: [util_ss.dependencies(), libm, = threads, glib, socket, malloc, rt]) + dependencies: [util_ss.dependencies(), libm, = threads, glib, socket, malloc, rt, pixman, opengl]) qemuutil =3D declare_dependency(link_with: libqemuutil, sources: genh + version_res, dependencies: [event_loop_base]) diff --git a/hw/vfio/pci.h b/hw/vfio/pci.h index d6495d7f297..c3a1f53d350 100644 --- a/hw/vfio/pci.h +++ b/hw/vfio/pci.h @@ -258,6 +258,8 @@ bool vfio_probe_igd_config_quirk(VFIOPCIDevice *vdev, E= rror **errp); =20 extern const PropertyInfo qdev_prop_nv_gpudirect_clique; =20 +struct vfio_pci_hot_reset_info; + void vfio_pci_pre_reset(VFIOPCIDevice *vdev); void vfio_pci_post_reset(VFIOPCIDevice *vdev); bool vfio_pci_host_match(PCIHostDeviceAddress *addr, const char *name); diff --git a/hw/vfio/igd-stubs.c b/hw/vfio/igd-stubs.c new file mode 100644 index 00000000000..f7687d90912 --- /dev/null +++ b/hw/vfio/igd-stubs.c @@ -0,0 +1,20 @@ +/* + * IGD device quirks stubs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/qmp/qerror.h" +#include "pci.h" +#include "pci-quirks.h" + +void vfio_probe_igd_bar0_quirk(VFIOPCIDevice *vdev, int nr) +{ + return; +} + +bool vfio_probe_igd_config_quirk(VFIOPCIDevice *vdev, Error **errp) +{ + return true; +} diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c index 7b907b9360d..ab864048943 100644 --- a/hw/vfio/pci-quirks.c +++ b/hw/vfio/pci-quirks.c @@ -11,7 +11,6 @@ */ =20 #include "qemu/osdep.h" -#include CONFIG_DEVICES #include "exec/memop.h" #include "qemu/units.h" #include "qemu/log.h" @@ -1128,11 +1127,9 @@ static void vfio_probe_rtl8168_bar2_quirk(VFIOPCIDev= ice *vdev, int nr) */ bool vfio_config_quirk_setup(VFIOPCIDevice *vdev, Error **errp) { -#ifdef CONFIG_VFIO_IGD if (!vfio_probe_igd_config_quirk(vdev, errp)) { return false; } -#endif return true; } =20 @@ -1179,9 +1176,7 @@ void vfio_bar_quirk_setup(VFIOPCIDevice *vdev, int nr) vfio_probe_nvidia_bar5_quirk(vdev, nr); vfio_probe_nvidia_bar0_quirk(vdev, nr); vfio_probe_rtl8168_bar2_quirk(vdev, nr); -#ifdef CONFIG_VFIO_IGD vfio_probe_igd_bar0_quirk(vdev, nr); -#endif } =20 void vfio_bar_quirk_exit(VFIOPCIDevice *vdev, int nr) diff --git a/hw/vfio/meson.build b/hw/vfio/meson.build index f2a7728d3d0..6c00a7f51bb 100644 --- a/hw/vfio/meson.build +++ b/hw/vfio/meson.build @@ -17,6 +17,7 @@ vfio_ss.add(when: 'CONFIG_VFIO_PCI', if_true: files( vfio_ss.add(when: 'CONFIG_VFIO_CCW', if_true: files('ccw.c')) vfio_ss.add(when: 'CONFIG_VFIO_AP', if_true: files('ap.c')) vfio_ss.add(when: 'CONFIG_VFIO_IGD', if_true: files('igd.c')) +stub_ss.add(files('igd-stubs.c')) =20 specific_ss.add_all(when: 'CONFIG_VFIO', if_true: vfio_ss) =20 --=20 2.47.3 From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776668; cv=none; d=zohomail.com; s=zohoarc; b=GxgKmyic8jPid2dF7BbaWR1VXOnPQ/mGtiwN6t29tt0seqbq5+AxAlA5hhSBGJb8+kj1w4WhMhX7CLa5GSdfDA3hfqskf7V8XuYd0Uu/NshfA0seIGaISwFrIkMaRFicaw1pmbLpUHaNeEHx2SNNaGCIXZ/RbVdj694edxLlC1Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776668; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=lvlR81x866gY3qLaJHNGVc5nZ2VGdLAHBfrAYzTTWAY=; b=f+B0l+orkY2Y3xKEp19zyew6O6q5lSRK1iDl4reBEWhR60qqXJbjD/wBzVhhSOUseEBIIt1om40t7RPnNnLtYYwoZjhh5/yBn5AlTxShfrDaMmdMQV+nYJ6vLnaboxGItAfNkuUxnvo+lt88AV09/w8RKWpU2eXMaWQdwcRFuN0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776668100127.26681150872082; Tue, 17 Mar 2026 12:44:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJg-0007TX-Tc; Tue, 17 Mar 2026 15:43:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJc-0007Qb-DM for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:56 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJX-000796-Q7 for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:56 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-358d80f60ccso3767269a91.3 for ; Tue, 17 Mar 2026 12:42:50 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776569; x=1774381369; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=lvlR81x866gY3qLaJHNGVc5nZ2VGdLAHBfrAYzTTWAY=; b=Kn3/pvxPbqDa7mvIBvks2QiKc+LNpqh5k1JEYnPqZEyvT/HHcFcUeJyGtOoYrI0LOi 94LDPVt3c0/iTlX/GUj5xtkzmv718QKed/ENHNJ+p5J476sKpUG9n5VHIdEbITbXbUip nTPj8kcZravy5luQCJbNdjI1g0X/SBr5NEARdpEdMR0sMcH2GlBYnUwMNp74Yj5Q8qGk oZ40vLTxuoq+vGky+JR1S/q/VvXDKRfjk+9O0K2zg8nWEj89mWnspaIBexueyeopNLQi EuIdXNNrZwd+j9khmCNxm5PDyoHCKluCnupYQG5vCmFBeZDZ6tzqvK7UzFFfcVm01lMt 08Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776569; x=1774381369; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lvlR81x866gY3qLaJHNGVc5nZ2VGdLAHBfrAYzTTWAY=; b=WiTWDDlcchLxSrDsJQz1GVSUfL7oNeVT32l5ygAa9BxWX15odAviyqg3W+tmT0eh53 zsye2e5z5azE2hUy7uLPLAdTMne+JxWOVSq1NzKC+Md3yDa/JDOw/hV+7+NHaO/O+Mcp uIB3ahqLiGCRAfChQ2Qo3cYHHMcvLOlB5MuuAOvr0A+nXd8UYxgqFmR6WwhYhResggex HTBxhg1l1a5bn6WPNYYyLlo7cBnjqX+xK4+yRo3hsGJA4l5B5q7UYPKpy3MLsYM7sMC4 5WjCOpTScLkd1BJV5iu92FSMMT1GMN3FGIFn4VrtaGwlzWKV+K/D4w1MOkSuX8a5Ja4n 4fcg== X-Gm-Message-State: AOJu0Yx+Ntx50uk0mLZ9f5Blwmcbl/DbKqxGoHe6Xz9WbLosnmBUQen3 biISM7iVmK6n5lpp01e62h6YCivuQkZCPuu8ypiezxbVpY4tFr9mhvQUuZqjDXfOU/+xals3wdz hNmFAt+s= X-Gm-Gg: ATEYQzzIyqm0Hor9Xlj8SFPSF4fhja4OZVasAGl4oMh7wRku8wPqQIR7vEPtjjFHM0a s3ZIfhBg1eUEqmzyl8ZtU6pArDgozMQ6Am8JKxtwGf1nQG0widAfPkV/c27EUxaPJWrf9MZ3xot TJwoecfFgP5j0La9qGD2tp55nn5OZL+ZyKWw5XfyHvln6HKR28ojn7i4/nqwGdlRxHJoPjmKDsG CMzvHZ4JmOelwnYNCsaGt/k7XAFkTLiPYfBWsdhcr36fiz6VQyIcPWPrnogz4dhI+/i+SY+ZTRx po0khsZBnEgRYXE4qflbXxuotUQgPOyLErBge1szTZ5rG53MVIpxOFhqMe6MG35g6l9wygSNFDu PSDYRH4G2HQRtNxPD30sXFGThe8W/Db/eCfBAEFQIQNbSldi+CS9n76P8FesInUCLpFgI7SLDPv pjn5K9Jjnd/9ciaQjap/kZ8y7/JS3Dyy6G6XcyR29QlszvLbLKqJhbehpsogc/enIRQrufIktv8 kQi X-Received: by 2002:a17:90b:2ecd:b0:359:f6f8:57b8 with SMTP id 98e67ed59e1d1-35bb9e3ba82mr494819a91.1.1773776568563; Tue, 17 Mar 2026 12:42:48 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 4/8] hw/vfio: eradicate CONFIG_IOMMU from sources Date: Tue, 17 Mar 2026 12:42:37 -0700 Message-ID: <20260317194241.869568-5-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x102b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776669892158500 Content-Type: text/plain; charset="utf-8" This commit removes usage of CONFIG_IOMMU in hw/vfio sources, exposing inconditionally iommufd related properties, which are declared statically (in const arrays). The alternative to expose them dynamically is more complex and requires boilerplate to set properties at runtime, with set_* callbacks and added logic to check if iommufd backend is available, with no obvious benefit. One possible difference is that user may see a different error message when trying to attach a vfio device with a QEMU not supporting iommufd, without declaring iommufd object associated. Instead of: ``` $ qemu-system-* -device vfio-pci,host=3D0000:01:00.0,iommufd=3Diommufd0 qemu-system-*: -device vfio-pci,host=3D0000:01:00.0,iommufd=3Diommufd0: Pro= perty 'vfio-pci.iommufd' not found ``` User will now see: ``` qemu-system-aarch64: -device vfio-pci,host=3D0000:01:00.0,iommufd=3Diommufd= 0: Device 'iommufd0' not found ``` However, since declaring the iommufd object is needed, error reported before and after is still the same: ``` $ qemu-system-* -object iommufd,id=3Diommufd0 -device vfio-pci,host=3D0000:= 01:00.0,iommufd=3Diommufd0 qemu-system-*: invalid object type: iommufd ``` Signed-off-by: Pierrick Bouvier Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/vfio/ap.c | 9 --------- hw/vfio/ccw.c | 9 --------- hw/vfio/pci.c | 11 ----------- 3 files changed, 29 deletions(-) diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index e58a0169af9..856fa2678cd 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -11,7 +11,6 @@ */ =20 #include "qemu/osdep.h" -#include CONFIG_DEVICES /* CONFIG_IOMMUFD */ #include #include #include "qapi/error.h" @@ -279,10 +278,8 @@ static void vfio_ap_unrealize(DeviceState *dev) =20 static const Property vfio_ap_properties[] =3D { DEFINE_PROP_STRING("sysfsdev", VFIOAPDevice, vdev.sysfsdev), -#ifdef CONFIG_IOMMUFD DEFINE_PROP_LINK("iommufd", VFIOAPDevice, vdev.iommufd, TYPE_IOMMUFD_BACKEND, IOMMUFDBackend *), -#endif }; =20 static void vfio_ap_reset(DeviceState *dev) @@ -320,21 +317,17 @@ static void vfio_ap_instance_init(Object *obj) vbasedev->mdev =3D true; } =20 -#ifdef CONFIG_IOMMUFD static void vfio_ap_set_fd(Object *obj, const char *str, Error **errp) { vfio_device_set_fd(&VFIO_AP_DEVICE(obj)->vdev, str, errp); } -#endif =20 static void vfio_ap_class_init(ObjectClass *klass, const void *data) { DeviceClass *dc =3D DEVICE_CLASS(klass); =20 device_class_set_props(dc, vfio_ap_properties); -#ifdef CONFIG_IOMMUFD object_class_property_add_str(klass, "fd", NULL, vfio_ap_set_fd); -#endif dc->vmsd =3D &vfio_ap_vmstate; dc->desc =3D "VFIO-based AP device assignment"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); @@ -347,11 +340,9 @@ static void vfio_ap_class_init(ObjectClass *klass, con= st void *data) object_class_property_set_description(klass, /* 3.1 */ "sysfsdev", "Host sysfs path of assigned dev= ice"); -#ifdef CONFIG_IOMMUFD object_class_property_set_description(klass, /* 9.0 */ "iommufd", "Set host IOMMUFD backend device= "); -#endif } =20 static const TypeInfo vfio_ap_info =3D { diff --git a/hw/vfio/ccw.c b/hw/vfio/ccw.c index 2251facb356..c66f42a13c2 100644 --- a/hw/vfio/ccw.c +++ b/hw/vfio/ccw.c @@ -15,7 +15,6 @@ */ =20 #include "qemu/osdep.h" -#include CONFIG_DEVICES /* CONFIG_IOMMUFD */ #include #include #include @@ -647,10 +646,8 @@ static void vfio_ccw_unrealize(DeviceState *dev) static const Property vfio_ccw_properties[] =3D { DEFINE_PROP_STRING("sysfsdev", VFIOCCWDevice, vdev.sysfsdev), DEFINE_PROP_BOOL("force-orb-pfch", VFIOCCWDevice, force_orb_pfch, fals= e), -#ifdef CONFIG_IOMMUFD DEFINE_PROP_LINK("iommufd", VFIOCCWDevice, vdev.iommufd, TYPE_IOMMUFD_BACKEND, IOMMUFDBackend *), -#endif DEFINE_PROP_CCW_LOADPARM("loadparm", CcwDevice, loadparm), }; =20 @@ -679,12 +676,10 @@ static void vfio_ccw_instance_init(Object *obj) DEVICE(vcdev), true); } =20 -#ifdef CONFIG_IOMMUFD static void vfio_ccw_set_fd(Object *obj, const char *str, Error **errp) { vfio_device_set_fd(&VFIO_CCW(obj)->vdev, str, errp); } -#endif =20 static void vfio_ccw_class_init(ObjectClass *klass, const void *data) { @@ -692,9 +687,7 @@ static void vfio_ccw_class_init(ObjectClass *klass, con= st void *data) S390CCWDeviceClass *cdc =3D S390_CCW_DEVICE_CLASS(klass); =20 device_class_set_props(dc, vfio_ccw_properties); -#ifdef CONFIG_IOMMUFD object_class_property_add_str(klass, "fd", NULL, vfio_ccw_set_fd); -#endif dc->vmsd =3D &vfio_ccw_vmstate; dc->desc =3D "VFIO-based subchannel assignment"; set_bit(DEVICE_CATEGORY_MISC, dc->categories); @@ -713,11 +706,9 @@ static void vfio_ccw_class_init(ObjectClass *klass, co= nst void *data) object_class_property_set_description(klass, /* 3.0 */ "force-orb-pfch", "Force unlimited prefetch"); -#ifdef CONFIG_IOMMUFD object_class_property_set_description(klass, /* 9.0 */ "iommufd", "Set host IOMMUFD backend device= "); -#endif object_class_property_set_description(klass, /* 9.2 */ "loadparm", "Define which devices that can b= e used for booting"); diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index 94c174a773f..df617f1fe46 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -19,7 +19,6 @@ */ =20 #include "qemu/osdep.h" -#include CONFIG_DEVICES /* CONFIG_IOMMUFD */ #include #include =20 @@ -3471,9 +3470,7 @@ static void vfio_pci_realize(PCIDevice *pdev, Error *= *errp) ~vdev->host.slot || ~vdev->host.function)) { error_setg(errp, "No provided host device"); error_append_hint(errp, "Use -device vfio-pci,host=3DDDDD:BB:D= D.F " -#ifdef CONFIG_IOMMUFD "or -device vfio-pci,fd=3DDEVICE_FD " -#endif "or -device vfio-pci,sysfsdev=3DPATH_TO_DEVI= CE\n"); return; } @@ -3816,22 +3813,18 @@ static const Property vfio_pci_properties[] =3D { qdev_prop_nv_gpudirect_clique, uint8_t), DEFINE_PROP_OFF_AUTO_PCIBAR("x-msix-relocation", VFIOPCIDevice, msix_r= elo, OFF_AUTO_PCIBAR_OFF), -#ifdef CONFIG_IOMMUFD DEFINE_PROP_LINK("iommufd", VFIOPCIDevice, vbasedev.iommufd, TYPE_IOMMUFD_BACKEND, IOMMUFDBackend *), -#endif DEFINE_PROP_BOOL("skip-vsc-check", VFIOPCIDevice, skip_vsc_check, true= ), DEFINE_PROP_UINT16("x-vpasid-cap-offset", VFIOPCIDevice, vpasid_cap_offset, 0), }; =20 -#ifdef CONFIG_IOMMUFD static void vfio_pci_set_fd(Object *obj, const char *str, Error **errp) { VFIOPCIDevice *vdev =3D VFIO_PCI_DEVICE(obj); vfio_device_set_fd(&vdev->vbasedev, str, errp); } -#endif =20 static void vfio_pci_class_init(ObjectClass *klass, const void *data) { @@ -3840,9 +3833,7 @@ static void vfio_pci_class_init(ObjectClass *klass, c= onst void *data) =20 device_class_set_legacy_reset(dc, vfio_pci_reset); device_class_set_props(dc, vfio_pci_properties); -#ifdef CONFIG_IOMMUFD object_class_property_add_str(klass, "fd", NULL, vfio_pci_set_fd); -#endif dc->vmsd =3D &vfio_cpr_pci_vmstate; dc->desc =3D "VFIO-based PCI device assignment"; pdc->realize =3D vfio_pci_realize; @@ -3944,11 +3935,9 @@ static void vfio_pci_class_init(ObjectClass *klass, = const void *data) "vf-token", "Specify UUID VF token. Required= for VF when PF is owned " "by another VFIO driver"); -#ifdef CONFIG_IOMMUFD object_class_property_set_description(klass, /* 9.0 */ "iommufd", "Set host IOMMUFD backend device= "); -#endif object_class_property_set_description(klass, /* 9.1 */ "x-device-dirty-page-tracking", "Disable device dirty page track= ing and use " --=20 2.47.3 From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776654; cv=none; d=zohomail.com; s=zohoarc; b=VHN7JMLble1SzXJR/KuAiA0xMHJdYGcY9A9KS2k9muk6iyS8BktHBeO2vvqXtcyDCd7+vwDwuVT7WUSOEN7mreTidy1E5nmAzVB9XDyVrM+cgFaTpwCXwY0Kiooj5eqgDsCi+2ndZqX/t11kd0VYKdFex6kZyrhqS0bPlZ/Az6w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776654; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WdPki2OUDvv7GbdAB4TVVTocQqYHi/i0OX7XXacQtPQ=; b=BZJWlwiCSxBDaSfxU0dCS2Cgqa9hsJBlaJv+U1Dqo4wop1PpGwChtIMJFZrhVCQSIFdS6mcLkF5QrZ5m3GN88HDo1PjLrEO5d5tN3RAHBYFBjjnOJA1Kp4t2Hrrg11c2OuS3Qe9H1M5aPADkow57U5yoFYuyEQJog/l1LHNoFcg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776654864356.7988921828402; Tue, 17 Mar 2026 12:44:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJj-0007Vl-QR; Tue, 17 Mar 2026 15:43:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJc-0007Qo-Hz for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:57 -0400 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJX-0007Ch-PZ for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:56 -0400 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-3590042fa8eso25466a91.1 for ; Tue, 17 Mar 2026 12:42:50 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776569; x=1774381369; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WdPki2OUDvv7GbdAB4TVVTocQqYHi/i0OX7XXacQtPQ=; b=PrpiCexZiOl4dIP4j1hn9oWmhgRKfeU3JgaEZuU3OD6TyKEADeTO34/xJtM/vJg4hY Zf4XfDgQ1nBDpSeVPCxuurB1NBmFZLp4T7xhMTlRx7D16nvpnaLYohY0t/fiSkH5fHpk L+ctQSieUO0XmC5urIU7YqNrF67KGK5HtfNhNWXND1uYef96ap7L8HJ+tspIBxqI4FpW snEBeJzMcNrxJ3ROB/roIrgOjL07dQ5YJpxBYIcXZNYXx5K8aPDD9q9JDnjCNeczbOnG ROgY8302Me2PkDuDNoqUITZSwK6nrzWKFhnzszoqY76Ipbsa+KO1T1fovfQEFmtkyU0K wwDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776569; x=1774381369; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WdPki2OUDvv7GbdAB4TVVTocQqYHi/i0OX7XXacQtPQ=; b=Zs/PVvdEVFGOGQvvLMTadtr9xyyO1lDVFY7Ee+mZDQPT65y+0iKjctiDzRTYfMtBgo sei+THUGwKMXYQFsRyQlW6xm1FPYTapqUdxRv1Xc25qBcgsgC5tBQbQlpuak2fiLkYMQ A1N6jrKTxlHGoc2u/54Bgni8/FTcwENxAivv9P1RTXcKkxtFe1X/CT1UQp5X3NYw3mFE mPUpkHAJ8AYwSrne+6qQSGSIQwMUUBkjSe7XgtmyGAaDUZOMxacLyksWP1r9wuirrCOL w5TH1Vt9ich1JBAf0pDbU/5wfqHJt0skuU+I4SOELASGa7QdzSf4sbK09lx9ltwPqCsO 1lDg== X-Gm-Message-State: AOJu0YwT3wvWKKv1PpPaYjcCr8IrjFm1x6HOL2GhpHcUNrslsqd6/lRi 1pJZD5SOhsrRj9cb8i4SPi6AEkrAYhLvzctICgBWolV9qYxbZCnliYAh9M49j7pPPsnyje4AaYk s1QSyWrc= X-Gm-Gg: ATEYQzwsY71Ut8WRJwqY4iWthEOCkAgIubTh2IdRnC/6pzMBB6U4fkQZgnND553D0EQ G3SpTcqJfADJ75e6LLdMq17UV2y3ghZA56nyzpyTm/KrhMY4xAdVpQZ4giCDjLNctMcKuOmcYZA AONFS/lb5g06zFLEynDZ80arW7su3Ohb1nbOI81HTJVuVD1jw8GHZRIe9pRxRbTjE15THBX3JzL l0TVmehD6CgUPkN1r8qSbByoD5E7XrViEAeZYnzQqdLSI3DF3+0TgE+xYrPGfjem2pybnyTfXS/ 2P//v5XRqmJGwKqcywgMozIOpvKTS3Kzzn6VkhMYGn+mdlb2jlmyW0nJhX+dA3yPBkPU/IqraBj /TxzmAVasqi6bAtPs9PJrPf8D879cZZiz07DfDKVR6UnMlP6MYu3ZNNElBwvERh5tv7EYKNaMW8 h6PT2HdRCBZWiXDN1QrPFct+gte6oUKxQG5ODpTvX/iC7QRQ4l0YtXl3wWOH2TyzdmafNGWVNYs TqbsIVqmuVZXuo= X-Received: by 2002:a17:90b:390b:b0:35b:947d:9fca with SMTP id 98e67ed59e1d1-35bb9f2fbc8mr464598a91.19.1773776569339; Tue, 17 Mar 2026 12:42:49 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 5/8] hw/vfio/pci.c: eradicate CONFIG_KVM Date: Tue, 17 Mar 2026 12:42:38 -0700 Message-ID: <20260317194241.869568-6-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1032; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1032.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776655737158500 We just need to add kvm_enabled() guard when calling concerned functions, but no need to extract those kvm functions since they are not using any kvm specific types that would not be visible at compilation time. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/vfio/pci.c | 28 ++++++++++------------------ 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c index df617f1fe46..811e5001de5 100644 --- a/hw/vfio/pci.c +++ b/hw/vfio/pci.c @@ -152,7 +152,6 @@ void vfio_pci_intx_eoi(VFIODevice *vbasedev) =20 static bool vfio_intx_enable_kvm(VFIOPCIDevice *vdev, Error **errp) { -#ifdef CONFIG_KVM PCIDevice *pdev =3D PCI_DEVICE(vdev); int irq_fd =3D event_notifier_get_fd(&vdev->intx.interrupt); =20 @@ -206,14 +205,10 @@ fail: qemu_set_fd_handler(irq_fd, vfio_intx_interrupt, NULL, vdev); vfio_device_irq_unmask(&vdev->vbasedev, VFIO_PCI_INTX_IRQ_INDEX); return false; -#else - return true; -#endif } =20 static bool vfio_cpr_intx_enable_kvm(VFIOPCIDevice *vdev, Error **errp) { -#ifdef CONFIG_KVM if (vdev->no_kvm_intx || !kvm_irqfds_enabled() || vdev->intx.route.mode !=3D PCI_INTX_ENABLED || !kvm_resamplefds_enabled()) { @@ -236,14 +231,10 @@ static bool vfio_cpr_intx_enable_kvm(VFIOPCIDevice *v= dev, Error **errp) vdev->intx.kvm_accel =3D true; trace_vfio_intx_enable_kvm(vdev->vbasedev.name); return true; -#else - return true; -#endif } =20 static void vfio_intx_disable_kvm(VFIOPCIDevice *vdev) { -#ifdef CONFIG_KVM PCIDevice *pdev =3D PCI_DEVICE(vdev); =20 if (!vdev->intx.kvm_accel) { @@ -277,7 +268,6 @@ static void vfio_intx_disable_kvm(VFIOPCIDevice *vdev) vfio_device_irq_unmask(&vdev->vbasedev, VFIO_PCI_INTX_IRQ_INDEX); =20 trace_vfio_intx_disable_kvm(vdev->vbasedev.name); -#endif } =20 static void vfio_intx_update(VFIOPCIDevice *vdev, PCIINTxRoute *route) @@ -287,7 +277,9 @@ static void vfio_intx_update(VFIOPCIDevice *vdev, PCIIN= TxRoute *route) trace_vfio_intx_update(vdev->vbasedev.name, vdev->intx.route.irq, route->irq); =20 - vfio_intx_disable_kvm(vdev); + if (kvm_enabled()) { + vfio_intx_disable_kvm(vdev); + } =20 vdev->intx.route =3D *route; =20 @@ -295,7 +287,7 @@ static void vfio_intx_update(VFIOPCIDevice *vdev, PCIIN= TxRoute *route) return; } =20 - if (!vfio_intx_enable_kvm(vdev, &err)) { + if (kvm_enabled() && !vfio_intx_enable_kvm(vdev, &err)) { warn_reportf_err(err, VFIO_MSG_PREFIX, vdev->vbasedev.name); } =20 @@ -350,16 +342,14 @@ static bool vfio_intx_enable(VFIOPCIDevice *vdev, Err= or **errp) vdev->intx.pin =3D pin - 1; /* Pin A (1) -> irq[0] */ pci_config_set_interrupt_pin(pdev->config, pin); =20 -#ifdef CONFIG_KVM /* * Only conditional to avoid generating error messages on platforms * where we won't actually use the result anyway. */ - if (kvm_irqfds_enabled() && kvm_resamplefds_enabled()) { + if (kvm_enabled() && kvm_irqfds_enabled() && kvm_resamplefds_enabled()= ) { vdev->intx.route =3D pci_device_route_intx_to_irq(pdev, vdev->intx.pin); } -#endif =20 if (!vfio_notifier_init(vdev, &vdev->intx.interrupt, "intx-interrupt",= 0, errp)) { @@ -370,7 +360,7 @@ static bool vfio_intx_enable(VFIOPCIDevice *vdev, Error= **errp) =20 =20 if (cpr_is_incoming()) { - if (!vfio_cpr_intx_enable_kvm(vdev, &err)) { + if (kvm_enabled() && !vfio_cpr_intx_enable_kvm(vdev, &err)) { warn_reportf_err(err, VFIO_MSG_PREFIX, vdev->vbasedev.name); } goto skip_signaling; @@ -383,7 +373,7 @@ static bool vfio_intx_enable(VFIOPCIDevice *vdev, Error= **errp) return false; } =20 - if (!vfio_intx_enable_kvm(vdev, &err)) { + if (kvm_enabled() && !vfio_intx_enable_kvm(vdev, &err)) { warn_reportf_err(err, VFIO_MSG_PREFIX, vdev->vbasedev.name); } =20 @@ -400,7 +390,9 @@ static void vfio_intx_disable(VFIOPCIDevice *vdev) int fd; =20 timer_del(vdev->intx.mmap_timer); - vfio_intx_disable_kvm(vdev); + if (kvm_enabled()) { + vfio_intx_disable_kvm(vdev); + } vfio_device_irq_disable(&vdev->vbasedev, VFIO_PCI_INTX_IRQ_INDEX); vdev->intx.pending =3D false; pci_irq_deassert(pdev); --=20 2.47.3 From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776675; cv=none; d=zohomail.com; s=zohoarc; b=EORtm2ZIGzpBBFb6OvoVSaO+aeI2+6NzooUFfbG2rCpBlutA3ZG5rMvAhg0hlnEpKDyOwE2McuD6817Zo6wz9PuAmCBNum++LP24F2hJXGtbmwLAUwEAlFAqWK/IgXFuAMTOEl17O8J2z96q90sZrsZBpWfo1DCzZEw63nlkPGs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776675; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=D7SBLNkZfE70Q4c4n8fHx6puQVux00Zu8cChd4QK9u4=; b=E+If6Hq8+MWyHhRJ7YbZOQtpVZa8NxeGKPCRLEUbIs9zyEayb4xNWN/o3WErMQoOy8+eTD/qXctRM3yWspu1dtW27Mn0YGKg2TtXzo8mhbKsQu1V7LQO1AF5hymjrNKc+IztU8oG9yUPgpmDgFGBd6Lctv5lgkz3fSKG38YvogU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776675523580.9740029766747; Tue, 17 Mar 2026 12:44:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJh-0007U3-Jr; Tue, 17 Mar 2026 15:43:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJb-0007PI-RF for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:56 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJX-0007Fx-Pu for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:55 -0400 Received: by mail-pj1-x1033.google.com with SMTP id 98e67ed59e1d1-35a288a2c00so2124080a91.2 for ; Tue, 17 Mar 2026 12:42:51 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776570; x=1774381370; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D7SBLNkZfE70Q4c4n8fHx6puQVux00Zu8cChd4QK9u4=; b=Yy2rrqs7bVERQq7xEWkdksQ8pr4XbIMTtqP3Pog9y771goCKS2jtwaBEStRAK3pKAT flQO6/gzAeMiOxb0Qh5ijrAesiX2wLHpXZC1Plu8ID029VzHOKDh7Hmd2zdD72jpOHIA ORJlk8Sf9ZolUKR9Ss/bSJYyEe5wgsfSzFa2b+mx3PhoRZfqa/3wxdu+XsPK/AKs3+rF NCAt255siBBTvV/8BfSkrA3yUmJihkX1qkQxEfe3oX3PyvsYGuklUoQDRRAdOV7FeLhw 3Jzq/qDPhy35JXQ2LrDqmgy2mWtC6CExUa/gQEksUZ9UueHLU+wOx/xjXefLFE8xTtLw PXSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776570; x=1774381370; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=D7SBLNkZfE70Q4c4n8fHx6puQVux00Zu8cChd4QK9u4=; b=mD01IfZvEX6Cq9oGAr8rlIYYSJ8GJONOfWZOzi0+b4jZF2lV+msLGkoqpoMp2dATFV R0MPYx+26B7FElutjejYRWHv4LM0eU2SVDkKWHMw1tjg6wN1eCC+piB9g1HLvHrfavNA +gx3+2XUM8ahccoME0Rj+H4GX7SL7LOdo6Q3fE8rB3Gj3ezZ3sxOoCKshsSWmmnh7meH E3vlZveuqAAHREImKG1jFkLikxTI/h6JuCDkNEEE/oyQau69xhuOlVcE5YTSM+e4mVhn NbeyfRg3SII1r3EmlvSncHc6eot/KS90sbt/aDJdXG+vTub9Uvl6FCNkoVOjr+4tmRrn ZXJw== X-Gm-Message-State: AOJu0Yw1ab6HGOmJdUnl+ZU32q4DvDA7E3eF878jXHrgfLGdgYhTXu28 nszu8HJajZDBH4chOsRX61jZerOAYXyziF2gKLHGAVO8KUuVC00uvY7tdSIhJQVqFNkSltmZlzm 75Xxfodw= X-Gm-Gg: ATEYQzy8iEE/Rc3J8JKqbnzOjN+ULRg7aslxrmlFBG2ZnDvayR8zuIiXe3L9VmV+ns1 AUTJn3NVsnDDOmBLjKYG9k7yS+8hAt0ukyAvq2z2miBze62E71LtQ3TvA6zMejGsRd4UH2ceGM9 s2MBoeXjwsEkG33gmjVqCgEQD5ZVt1T/8YtxRfHXaK2rw/zmHfurrZAwyp08k6HSG7TAnLg7HOE RNFVNdZ99limtfTTOLMZqtqllMjkFkUD9Tg6BngzhCxXHbd35i67ESd4Y2GW7TkKBXi/EaLELvS Uoln64w7YKZYKLGBhkm16P144T8xWm7MQdhFsrxyKx4xXoabQcVmYPvIlrHM8LVq3wYMTudPKRZ RPMy7OWzNiZYtqD6niXuYWJjBRvUlLbJPYI02tIWDtYW4b+Dhhb93y3aIAW937yAX7J4871ta5h ZN5LFWg0gZoSyYSekKMtf9zWtFrCVCtapLse3CQc3iYdVdpLIOJ+i2SHU7rV3eLhiZ+j0HRwc4p aMj35Mnoafp8yE= X-Received: by 2002:a17:90a:e708:b0:35b:a44f:b8a with SMTP id 98e67ed59e1d1-35bb9e8cfb9mr530941a91.6.1773776570122; Tue, 17 Mar 2026 12:42:50 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 6/8] hw/vfio/ap.c: use full path for target specific header Date: Tue, 17 Mar 2026 12:42:39 -0700 Message-ID: <20260317194241.869568-7-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x1033.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776675906158500 In addition, we fix target/s390x/kvm/kvm_s390x.h cpu-qom include also. Reviewed-by: C=C3=A9dric Le Goater Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/s390x/kvm/kvm_s390x.h | 2 +- hw/vfio/ap.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/s390x/kvm/kvm_s390x.h b/target/s390x/kvm/kvm_s390x.h index 649dae5948a..7b1cce3e60d 100644 --- a/target/s390x/kvm/kvm_s390x.h +++ b/target/s390x/kvm/kvm_s390x.h @@ -10,7 +10,7 @@ #ifndef KVM_S390X_H #define KVM_S390X_H =20 -#include "cpu-qom.h" +#include "target/s390x/cpu-qom.h" =20 struct kvm_s390_irq; =20 diff --git a/hw/vfio/ap.c b/hw/vfio/ap.c index 856fa2678cd..3fae9ae9814 100644 --- a/hw/vfio/ap.c +++ b/hw/vfio/ap.c @@ -25,7 +25,7 @@ #include "qemu/module.h" #include "qemu/option.h" #include "qemu/config-file.h" -#include "kvm/kvm_s390x.h" +#include "target/s390x/kvm/kvm_s390x.h" #include "migration/vmstate.h" #include "hw/core/qdev-properties.h" #include "hw/s390x/ap-bridge.h" --=20 2.47.3 From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776605; cv=none; d=zohomail.com; s=zohoarc; b=aIwVujjzI7o0fKbalo8DQw5DMmy3APenJH8ppZ+LunQuhO4iXLPbKt/02Gq0+AY8MZnD7H3x7F+U13kqAoj8rLovyFQ4v+XmU4dZJSKAff0uAcG9nBwd95rFTNZXYGFEWEmMaNwVLJ8Y0MRwVcuDuSGi6FKbA839KPjw1lJhJLU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776605; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=U6HBDS69l4fbTlZmSQgqfg1BjiYPNjySjY8DwVgdsMo=; b=foDg7vD1j/GYQFJfO+XYzFQk9ZpkACnpGZ38nvMQ/9evu3pgXYphaqiRfNLw+araYlubsPYO1H4JNMTe7PaRtFGrzRCZD3eEG7KF535vmmT+WuxSiBv8tfCEKkPJNEz6OZnjaCeOrCNLstE+Uyt/xlI19Kfn/OxHHpV0x0/K4PM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776605316760.507447339198; Tue, 17 Mar 2026 12:43:25 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJj-0007Vc-6I; Tue, 17 Mar 2026 15:43:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJc-0007Qv-Th for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:58 -0400 Received: from mail-pg1-x536.google.com ([2607:f8b0:4864:20::536]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJY-0007JD-DW for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:56 -0400 Received: by mail-pg1-x536.google.com with SMTP id 41be03b00d2f7-c648bc907ebso4249801a12.3 for ; Tue, 17 Mar 2026 12:42:52 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776571; x=1774381371; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U6HBDS69l4fbTlZmSQgqfg1BjiYPNjySjY8DwVgdsMo=; b=GinmQfeIsXe9qDBruawO38uA0elMcnJRyXHnM82sbbnm1BgLGbqT5l8QF3tZTC3d+a 3ad0r7D+oXepSTxJtx9tS+vkErP2JxN/N909A19SGgibfoA2UuYs0bRTxbLnEKRVqp75 3IaokV4lm39bF8PL84X/GA7jBsfc8Fmxpi1n9s8Dfqf9volK+gNIDjTn87EQPVjCcnJA /1mg6wEWI07TIIrrobWpC/XVMo8g4lH2CLuR+oEVNA/DcdnFOY5AEnUkF/1D/Xpe/UwF JpaezADl4UZoJJWkpRfCYJHFTsev6bdQqDFod703AlahWKKen8uQmDCMCrbzf80pz0Op DV0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776571; x=1774381371; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=U6HBDS69l4fbTlZmSQgqfg1BjiYPNjySjY8DwVgdsMo=; b=omw1UW1YhjuCHgyL/5J/mfztAyLmY+DDdWO7QXqi3KCS334EGuuyMdZeGAucAn3Zbx 6I5wW3L02ivmwemtwtZUYMeADI3dZwpCM2uHG4pvXhO43SVlFlnekYZnBHOhuJhRL7or 4mVmVclnB1VPBqT/jMVUyZf+beiZ5+PfW1LY0bRWF3VI+UG5azxuuxHzqNAUtjzZuiKv jNxtU+RhevvqJ8ABn0GrpB86gCuasr/CSy3vEyViEbekTnleqgSzGN+Krycaod11B6ZA nf3tp6P/6LcCQAcImFahIaK1fzTDGxEJZgM0yyNBcZEndkvkOFDcxrXv1C8eglqigfMi 3/ig== X-Gm-Message-State: AOJu0YzqROZFlqC/PjrswJuxif7xOxBgJP2U9hV//PnEPBgkLam0AjRl Qtn08JHzwNo6wCJuQ8xB2VlEF7s8q0yC2nYb7Frk3fyBcttiuhAGqEY1O9ZNwfj3tKLYWAB72Lw Vs1G3bo8= X-Gm-Gg: ATEYQzy/ZnyGbtkbxLSr4xcbVJIeQdElxy6SACnoI/EhWt2pYh2sQjHI6j1gUbCpQM3 g3ruJ8ka85H3h2OL2x7GK/ZsQeHpkhYj3cKyH7xBOscesIjTzTMh7N2A0QoaeftWkyr0O12a29P zW/oy04hQsRGvSlbid4+Ajj1BU638sAfPzyIrn1lcSyjksrwTZ/p6rpZ58xXjzoFRSIMVNPpl+Q uDwd59gNlWYg3xb4NijdidNkX1ZMPiJbnXtyWjV62u24K5rNEZn/HXFFtyxy9G31t66T6MY8V4/ rRfs6lySfTtgtO4JuWtuyImifY5huOH6XHZXxvi7+YamqG6etYe1tcQ+3RNRl1d5N4fUkl+IkmW 5/dQeyTYjls6cPFDq49RqXni8bh0jcn6KWOzvBFT0k78gDTWNN09mdMo0rrakR06vfKutBboHnS YGq1sahwQSK1bAMVvksJojMauA0KQnE+Q4EmZ3xQkFubv3/8upNqWUfM/bPuEoojgwMN7onhkF2 gOu X-Received: by 2002:a17:90b:1c81:b0:35b:9682:51f7 with SMTP id 98e67ed59e1d1-35bb9f2c418mr551353a91.24.1773776570872; Tue, 17 Mar 2026 12:42:50 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 7/8] hw/vfio/spapr.c: extract vfio_spapr_kvm_attach_tce to hw/vfio/kvm-spapr.c Date: Tue, 17 Mar 2026 12:42:40 -0700 Message-ID: <20260317194241.869568-8-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::536; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pg1-x536.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776607788158500 Since this function needs kvm specific types, we need to extract in another file and link it only for KVM builds. Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/vfio/kvm-spapr.h | 12 ++++++++++++ hw/vfio/kvm-spapr.c | 47 +++++++++++++++++++++++++++++++++++++++++++++ hw/vfio/kvm-stubs.c | 8 ++++++++ hw/vfio/spapr.c | 30 ++++------------------------- hw/vfio/meson.build | 1 + 5 files changed, 72 insertions(+), 26 deletions(-) create mode 100644 hw/vfio/kvm-spapr.h create mode 100644 hw/vfio/kvm-spapr.c diff --git a/hw/vfio/kvm-spapr.h b/hw/vfio/kvm-spapr.h new file mode 100644 index 00000000000..b1f68c686a7 --- /dev/null +++ b/hw/vfio/kvm-spapr.h @@ -0,0 +1,12 @@ +/* + * VFIO sPAPR KVM specific functions + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "hw/vfio/vfio-container.h" +#include "qapi/error.h" + +bool vfio_spapr_kvm_attach_tce(VFIOContainer *bcontainer, + MemoryRegionSection *section, + Error **errp); diff --git a/hw/vfio/kvm-spapr.c b/hw/vfio/kvm-spapr.c new file mode 100644 index 00000000000..ad71c5a85e2 --- /dev/null +++ b/hw/vfio/kvm-spapr.c @@ -0,0 +1,47 @@ +/* + * VFIO sPAPR KVM specific functions + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include +#include +#include + +#include "hw/vfio/vfio-container-legacy.h" +#include "hw/vfio/kvm-spapr.h" +#include "qapi/error.h" +#include "trace.h" +#include "vfio-helpers.h" + +bool vfio_spapr_kvm_attach_tce(VFIOContainer *bcontainer, + MemoryRegionSection *section, + Error **errp) +{ + VFIOLegacyContainer *container =3D VFIO_IOMMU_LEGACY(bcontainer); + VFIOGroup *group; + IOMMUMemoryRegion *iommu_mr =3D IOMMU_MEMORY_REGION(section->mr); + struct kvm_vfio_spapr_tce param; + struct kvm_device_attr attr =3D { + .group =3D KVM_DEV_VFIO_GROUP, + .attr =3D KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE, + .addr =3D (uint64_t)(unsigned long)¶m, + }; + + if (!memory_region_iommu_get_attr(iommu_mr, IOMMU_ATTR_SPAPR_TCE_FD, + ¶m.tablefd)) { + QLIST_FOREACH(group, &container->group_list, container_next) { + param.groupfd =3D group->fd; + if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr)) { + error_setg_errno(errp, errno, + "vfio: failed GROUP_SET_SPAPR_TCE for " + "KVM VFIO device %d and group fd %d", + param.tablefd, param.groupfd); + return false; + } + trace_vfio_spapr_group_attach(param.groupfd, param.tablefd); + } + } + return true; +} diff --git a/hw/vfio/kvm-stubs.c b/hw/vfio/kvm-stubs.c index 5a489d1b711..78c51b99155 100644 --- a/hw/vfio/kvm-stubs.c +++ b/hw/vfio/kvm-stubs.c @@ -6,6 +6,7 @@ =20 #include "qemu/osdep.h" =20 +#include "hw/vfio/kvm-spapr.h" #include "hw/vfio/vfio-device.h" #include "qapi/error.h" #include "vfio-helpers.h" @@ -24,3 +25,10 @@ int vfio_kvm_device_del_fd(int fd, Error **errp) { return 0; } + +bool vfio_spapr_kvm_attach_tce(VFIOContainer *bcontainer, + MemoryRegionSection *section, + Error **errp) +{ + g_assert_not_reached(); +} diff --git a/hw/vfio/spapr.c b/hw/vfio/spapr.c index a9f093c3570..42690e4323d 100644 --- a/hw/vfio/spapr.c +++ b/hw/vfio/spapr.c @@ -16,6 +16,7 @@ #include "system/address-spaces.h" =20 #include "hw/vfio/vfio-container-legacy.h" +#include "hw/vfio/kvm-spapr.h" #include "hw/core/hw-error.h" #include "qemu/error-report.h" #include "qapi/error.h" @@ -406,33 +407,10 @@ vfio_spapr_container_add_section_window(VFIOContainer= *bcontainer, vfio_host_win_add(scontainer, section->offset_within_address_space, section->offset_within_address_space + int128_get64(section->size) - 1, pgsize); -#ifdef CONFIG_KVM - if (kvm_enabled()) { - VFIOGroup *group; - IOMMUMemoryRegion *iommu_mr =3D IOMMU_MEMORY_REGION(section->mr); - struct kvm_vfio_spapr_tce param; - struct kvm_device_attr attr =3D { - .group =3D KVM_DEV_VFIO_GROUP, - .attr =3D KVM_DEV_VFIO_GROUP_SET_SPAPR_TCE, - .addr =3D (uint64_t)(unsigned long)¶m, - }; - - if (!memory_region_iommu_get_attr(iommu_mr, IOMMU_ATTR_SPAPR_TCE_F= D, - ¶m.tablefd)) { - QLIST_FOREACH(group, &container->group_list, container_next) { - param.groupfd =3D group->fd; - if (ioctl(vfio_kvm_device_fd, KVM_SET_DEVICE_ATTR, &attr))= { - error_setg_errno(errp, errno, - "vfio: failed GROUP_SET_SPAPR_TCE for= " - "KVM VFIO device %d and group fd %d", - param.tablefd, param.groupfd); - return false; - } - trace_vfio_spapr_group_attach(param.groupfd, param.tablefd= ); - } - } + if (kvm_enabled() && !vfio_spapr_kvm_attach_tce(bcontainer, section, e= rrp)) { + return false; } -#endif + return true; } =20 diff --git a/hw/vfio/meson.build b/hw/vfio/meson.build index 6c00a7f51bb..bab5f2b7f15 100644 --- a/hw/vfio/meson.build +++ b/hw/vfio/meson.build @@ -10,6 +10,7 @@ vfio_ss.add(files( vfio_ss.add(when: 'CONFIG_KVM', if_true: files('kvm-helpers.c')) stub_ss.add(files('kvm-stubs.c')) vfio_ss.add(when: 'CONFIG_PSERIES', if_true: files('spapr.c')) +vfio_ss.add(when: ['CONFIG_KVM', 'CONFIG_PSERIES'], if_true: files('kvm-sp= apr.c')) vfio_ss.add(when: 'CONFIG_VFIO_PCI', if_true: files( 'pci-quirks.c', 'pci.c', --=20 2.47.3 From nobody Fri Mar 27 02:33:53 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1773776653; cv=none; d=zohomail.com; s=zohoarc; b=kdAJAsJnB1RcDnrbE/cg356DpJ7iEauXCIBv6HV8T1xuV05o2KuXHSz2OvD62dh/MrEkDopdMeig7kcj32+o/WeVCWF7Bnn3cdV3+qwib/w0aBnecesED7lhNCVc+/oBYewDVo1u2QyvmqiGlHbwdCIlPry/8TeTPiYstXL39oY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773776653; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=j1EkWaHvbsvBNf8xjg+jC92XlcL8wcQLQiGSVioaaEM=; b=NJvLP1I+2nhFiT4txm1tw4wNdpln7qECHF4odc0GHdcdwTn3hRZtrXzO7ViOmLt1vaChndzp/qdQ1mbezbQlWsNQWhCDDk5/BG62JAZIgw0kQlZKt5gcQCOUEPS8Pj6cebU97OED6pHDpkp8M33sSyIpWdSWWyYgP1oZ2+/iK+Q= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1773776653929851.3550383324113; Tue, 17 Mar 2026 12:44:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1w2aJk-0007WX-CR; Tue, 17 Mar 2026 15:43:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1w2aJd-0007R8-VH for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:59 -0400 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1w2aJa-0007LB-5g for qemu-devel@nongnu.org; Tue, 17 Mar 2026 15:42:57 -0400 Received: by mail-pj1-x102f.google.com with SMTP id 98e67ed59e1d1-35a094cc3e9so4046710a91.3 for ; Tue, 17 Mar 2026 12:42:52 -0700 (PDT) Received: from pc.taild8403c.ts.net (216-71-219-44.dyn.novuscom.net. [216.71.219.44]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-35bba5b8606sm239907a91.14.2026.03.17.12.42.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Mar 2026 12:42:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1773776572; x=1774381372; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=j1EkWaHvbsvBNf8xjg+jC92XlcL8wcQLQiGSVioaaEM=; b=E3tSDMnEbBxj38pUtpYu/Kx+P7m5cyxn2nJMzg4BGDnak6GmxOH3y48Kv/Icn3k23k JVCjN+jz9LTblsf0QxcnaHFFAX20VsYkCXKWCyg5/bTdUZj/mRfarrlGFexWk39AKNty qNuSthJk82VdqxvsBucsFlUOiKV90if6aaQlM8VeKkwtbil0mmUJRpJ8eoAQ0cn5Loo5 j0fqpas6RaApaEqw2tyWWgQHMgPZ+sr0RPjk9ig6pPZawq1CHYDxhqkrvtV2zvfeHzx6 Rl0bZQtlbGQ5psA+sIJ0c5nckNOSgX8RE1Scqz4K4C9QwLguiNi/9BydZugcgCLliy79 C+0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773776572; x=1774381372; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=j1EkWaHvbsvBNf8xjg+jC92XlcL8wcQLQiGSVioaaEM=; b=k7qoBGVn+b82ws8OZMYLXdjzqMyDepTrY6/ZE/lam4/qA8k6ERAsU0sLeEGxRaclRe SM20ohofhpmQrfuAbBWN/gmtd7atEe5TK/36InafsytKMhqoEujGt2BfZ0BJZEj6log9 8j2SiQV9EItLloQ8kMDVKPzZ2tYI/aPyG80Np5Gcq0rYAvMXkx1orPZMALcl+v0KEdca hI8TNfBCJ4me66nY0WImOZpWVyZb16hokcDKEknDYM4cKzcY26NTRcawj4G7DJp7zeAO NgJ9AhAM8xspYAs3791FS8xOGy0Ar+E4jSLA8AEtpdz7Z8xT9weY21FanccwdMWuvkjU 7+Jw== X-Gm-Message-State: AOJu0YxI1ZeySZkK2ZuHH3HUsMARGi19ujwc5J/iNXCf9T0j9W5rEVTU 3IhrF83jzxBY8gs9Qd44XwFWker+jHVmoNpySR9aJa4GYRNH96ZKFDwc0bOzlJG7vq6wFU0Y/I5 PsZbSCFw= X-Gm-Gg: ATEYQzw4UlH1P06XCMz6L9hFk1I7Lr1OjF7nYzFXNhZj83qOVYVwzRQrWJqX1NBOBqU mkH/I6Cuq6zAeeI6FCJxJpl9+yI8bo3kKN3ijQJX6u6vAflt2CgGW8hEQnxQnkPPyQOI0jWwBEB hPjeZGSM+WcXOvk/mFYPdgpNBRnHZBTEQItnShXVNHXl5bICf/poTGgQSU9e7xU+9/G+GaAsnXn TqIKqmRKrr/P0ZpdttYV0HgO3oAVYhVYdyOnYyqHtrpGQ+GJcai1EkAwy6eYoKMkUHEoo638cF4 Tfm4mC+3Fj8ynAAusN05FCIY4iVKFGgj069vqpERKOr7KkgIgVfMyVzxxig8gn13Jd5UWBUar5h MB8U325QmXcqpfoKfQzebtDf+pom5kcMa2UojjzSKwSv2ikqwKk9WpaFcu73hoPS7wE58rByDzX CpH6RpiK0A3+dtZd9FvDmlIBdDEps/4pRpPdMExQPuEiU2R4Hh4H4/W4NwInzr9ZAwGDlPN157N WJZ X-Received: by 2002:a17:90b:2fd0:b0:35b:a170:f266 with SMTP id 98e67ed59e1d1-35bb9e7f6bcmr554608a91.13.1773776571545; Tue, 17 Mar 2026 12:42:51 -0700 (PDT) From: Pierrick Bouvier To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Richard Henderson , eric.auger@redhat.com, qemu-ppc@nongnu.org, Paolo Bonzini , philmd@linaro.org Subject: [PATCH v4 8/8] hw/vfio: all vfio files can now be common files Date: Tue, 17 Mar 2026 12:42:41 -0700 Message-ID: <20260317194241.869568-9-pierrick.bouvier@linaro.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260317194241.869568-1-pierrick.bouvier@linaro.org> References: <20260317194241.869568-1-pierrick.bouvier@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102f; envelope-from=pierrick.bouvier@linaro.org; helo=mail-pj1-x102f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1773776655730158500 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Pierrick Bouvier Reviewed-by: C=C3=A9dric Le Goater Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/vfio/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/vfio/meson.build b/hw/vfio/meson.build index bab5f2b7f15..fa0ea6ecf0e 100644 --- a/hw/vfio/meson.build +++ b/hw/vfio/meson.build @@ -20,7 +20,7 @@ vfio_ss.add(when: 'CONFIG_VFIO_AP', if_true: files('ap.c'= )) vfio_ss.add(when: 'CONFIG_VFIO_IGD', if_true: files('igd.c')) stub_ss.add(files('igd-stubs.c')) =20 -specific_ss.add_all(when: 'CONFIG_VFIO', if_true: vfio_ss) +system_ss.add_all(when: 'CONFIG_VFIO', if_true: vfio_ss) =20 system_ss.add(when: 'CONFIG_VFIO', if_true: files( 'cpr.c', --=20 2.47.3