From nobody Wed Apr 2 13:31:15 2025 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=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1742923429; cv=none; d=zohomail.com; s=zohoarc; b=geGGQRO4CWjoEa42PubZTpZsDLVD2Bas/BXdssoLpFKjvyALeOiqNrD1zD5BXT4O34GXX6LXJR34gjPMj2dvwl48Bj+Srbc6meVeJ8ihKoFd6ysI4BJm4VPHBkM3V2ZoCo9a0BsTdPYgf2UNb6remzivXWujlZyGiYosBb8NCzk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742923429; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wjRZjoUllmqSg+EfYpaDTJAMQbZL+d+HVA4PveMvE6s=; b=ksinxq6W2gVIlUXYT4b6p1vsJD1ueINlaQdFQK3dz70JXPgbVFuQWPiN7xs3t0Ujwkm2TMi9dOriwlNj6brUlKJ/+8njsUiMympllz2Y99CjNx1i6F4jY3EE1/sRez/gNPAFYrsbh+Rs8F81kfWiCaajOGon90yUVS/bGtgdbII= 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 1742923429726172.36023128140448; Tue, 25 Mar 2025 10:23:49 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tx7ze-0003ZN-Bc; Tue, 25 Mar 2025 13:23:14 -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 1tx7zL-0003V5-NH for qemu-devel@nongnu.org; Tue, 25 Mar 2025 13:23:02 -0400 Received: from mail-pj1-x1041.google.com ([2607:f8b0:4864:20::1041]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tx7zI-00005a-NH for qemu-devel@nongnu.org; Tue, 25 Mar 2025 13:22:55 -0400 Received: by mail-pj1-x1041.google.com with SMTP id 98e67ed59e1d1-2ff69365e1dso8188394a91.3 for ; Tue, 25 Mar 2025 10:22:51 -0700 (PDT) Received: from localhost.localdomain ([139.227.182.126]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22780f39802sm92986365ad.17.2025.03.25.10.22.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 25 Mar 2025 10:22:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742923370; x=1743528170; darn=nongnu.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=wjRZjoUllmqSg+EfYpaDTJAMQbZL+d+HVA4PveMvE6s=; b=mXYK0vU/4WwralgyoC97+Bpe4yQEgRBODVUvsP4nf/zp+IC2AtsPI/MblU3J9HG1F8 v4CNOLlWAVuu6TgscCctXx5EfQxYbwEtDjVmR6hWaUQ30/eVHUfjDCXNfawMX+X6XojN F4wrnvD19I6N0l7Xb+d2ChMTF1IgcCgdMKAlsafGFEs3AW1+9+pW4fkjNM3EmIGTdZJK y0OVEluoUOpYI3ygn3kLGWCPzvy5/ZeeRvm4jA4EDIuhMz3ECHRnN9VAynIxpMQHwnDN xQqudlBxh8MmeWko0j4xma/uQK3dRuxAj/n82piLiiSjpvFz6mMEXynmlb8mDmLxtQe8 Chvw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742923370; x=1743528170; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=wjRZjoUllmqSg+EfYpaDTJAMQbZL+d+HVA4PveMvE6s=; b=QBpuQQU0hlvdZpp5hnlKnCqcJyQP4bCKEfwX6+jbh+02WWNXBlAZs84e727uaySMKc YAYBS0z1kQXA2jBMCJEz5xOxUfkwSjmKfaXXqmuqaYizvmRhl0W+zbpUT7nLgD871Ghk j8YlGz9DPXkpz9/JcenSVF/zX2oHsoUQGz5Eg463446L5oVtT1M2cMlsL0aTGkqKtqE8 kH4U3ihRZfdX9SJIDR/gZNbAI0NgI4WWQs9pEuqXBJb3ilf4t6brPjzCK4hG6wIa+Wa3 iq8oS8vyXiRiacHsaUuAPLcQ7AyDD42ls7a7B6IcAflv68jRKErh6ctj6BwQv8ctA1oA HGLQ== X-Gm-Message-State: AOJu0YzCiMXOUgSHK5WKwkPGhITnHVzcCSZeiCcxxGQk7bmBPM6XMrSz RacyAivZrAHPgJmCD/j1dE08t0nvKVfoIXQBxQbyoYF54xWnsd9AHBMv7gw= X-Gm-Gg: ASbGncv8ZEOGQUSAZehjKMnGOSbHfnlxaG/dTbBYfi0v0wkWHe1TmXmZPWh6jSg1ok2 U0a48yIX/cqu5dtY74edVA9nXJLFmB8ZVWjV3hdQfKdAmChqz6Fzx+XBfiyKHCt66gUwN+Azme8 5hsJOZr6Qasxv5Tqv0/w15mcpWFqEOEjkNyA3AgHGFx+nfszRxNwIQ0icnFwSaesvJUx75bAj0v QKtwJ5n58J8KXdszPw4dhoaX97h6T1yw2EG3c66TzbtXbKo2nUXNgjVP/H6tG9MeuNlHBioi9x9 WS6HhM2x7jArwU6LuW8Yr27AnxV870bTLT4sPGf+XYp0pReum0vdSriExNDR X-Google-Smtp-Source: AGHT+IHPOBfIPDOPwOkH5k1lHT/VfshmB9448Zlc/5usgVFgpBbY97SN0o3vGQvlMTri9+KZNdpEQw== X-Received: by 2002:a17:90b:48c2:b0:2fa:15ab:4de7 with SMTP id 98e67ed59e1d1-3030fe83954mr36375338a91.12.1742923369501; Tue, 25 Mar 2025 10:22:49 -0700 (PDT) From: Tomita Moeko To: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Tomita Moeko Cc: qemu-devel@nongnu.org Subject: [PATCH] vfio/igd: Check host PCI address when probing Date: Wed, 26 Mar 2025 01:22:39 +0800 Message-ID: <20250325172239.27926-1-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.47.2 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::1041; envelope-from=tomitamoeko@gmail.com; helo=mail-pj1-x1041.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, FREEMAIL_FROM=0.001, 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: 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 @gmail.com) X-ZM-MESSAGEID: 1742923433170019100 Content-Type: text/plain; charset="utf-8" So far, all Intel VGA adapters, including discrete GPUs like A770 and B580, were treated as IGD devices. While this had no functional impact, a error about "unsupported IGD device" will be printed when passthrough Intel discrete GPUs. Since IGD devices must be at "0000:00:02.0", let's check the host PCI address when probing. Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index 265fffc2aa..ff250017b0 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -53,6 +53,13 @@ * headless setup is desired, the OpRegion gets in the way of that. */ =20 +static bool vfio_is_igd(VFIOPCIDevice *vdev) +{ + return vfio_pci_is(vdev, PCI_VENDOR_ID_INTEL, PCI_ANY_ID) && + vfio_is_vga(vdev) && + vfio_pci_host_match(&vdev->host, "0000:00:02.0"); +} + /* * This presumes the device is already known to be an Intel VGA device, so= we * take liberties in which device ID bits match which generation. This sh= ould @@ -427,13 +434,7 @@ void vfio_probe_igd_bar0_quirk(VFIOPCIDevice *vdev, in= t nr) VFIOConfigMirrorQuirk *ggc_mirror, *bdsm_mirror; int gen; =20 - /* - * This must be an Intel VGA device at address 00:02.0 for us to even - * consider enabling legacy mode. Some driver have dependencies on the= PCI - * bus address. - */ - if (!vfio_pci_is(vdev, PCI_VENDOR_ID_INTEL, PCI_ANY_ID) || - !vfio_is_vga(vdev) || nr !=3D 0) { + if (nr !=3D 0 || !vfio_is_igd(vdev)) { return; } =20 @@ -490,13 +491,7 @@ static bool vfio_pci_igd_config_quirk(VFIOPCIDevice *v= dev, Error **errp) bool legacy_mode_enabled =3D false; Error *err =3D NULL; =20 - /* - * This must be an Intel VGA device at address 00:02.0 for us to even - * consider enabling legacy mode. The vBIOS has dependencies on the - * PCI bus address. - */ - if (!vfio_pci_is(vdev, PCI_VENDOR_ID_INTEL, PCI_ANY_ID) || - !vfio_is_vga(vdev)) { + if (!vfio_is_igd(vdev)) { return true; } =20 --=20 2.47.2