From nobody Fri May 17 10:34:33 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=citrix.com ARC-Seal: i=1; a=rsa-sha256; t=1660235932; cv=none; d=zohomail.com; s=zohoarc; b=VyCDfrMxLjvJ/2dG04QigwAaG7nIDKhZrdtOEyZT+HYJkurfsYRQHnhMEtXMIX4QQ06OuFy9NYzV5b4pdQtyJizuq+3xX92Qn5OsPDM0OfMm4P3596s49aQ7BxF03A5auofv78tFKTGhqrvmUYupTfCWR232gbjr7sZSfK1O2L8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660235932; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=P5lUVgRXamObVCuK0dU7okeq/oErxfiTQe2AVf6mZBc=; b=jJxo9oj0nHzwW8CHqZ5Brk3V6+aGHttWO9EdB8VijsRrMUD1cLWABS5Eqz2o/jdfc5xhq96RAbbGcjkMDhdVoMm1oBGu5FGqSxg2MAPTax/d1O4kfu/vtsszy4gFtB9xYX94rydKoDAAVVpqtBisqZiVNcKLNhM9zwuswpjoGZk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1660235932316379.5743431562329; Thu, 11 Aug 2022 09:38:52 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.384772.620224 (Exim 4.92) (envelope-from ) id 1oMBCQ-0001dl-PY; Thu, 11 Aug 2022 16:38:22 +0000 Received: by outflank-mailman (output) from mailman id 384772.620224; Thu, 11 Aug 2022 16:38:22 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oMBCQ-0001de-Ll; Thu, 11 Aug 2022 16:38:22 +0000 Received: by outflank-mailman (input) for mailman id 384772; Thu, 11 Aug 2022 16:38:20 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oMBCO-0001dY-Jy for xen-devel@lists.xenproject.org; Thu, 11 Aug 2022 16:38:20 +0000 Received: from esa4.hc3370-68.iphmx.com (esa4.hc3370-68.iphmx.com [216.71.155.144]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id ffba500d-1993-11ed-bd2e-47488cf2e6aa; Thu, 11 Aug 2022 18:38:18 +0200 (CEST) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ffba500d-1993-11ed-bd2e-47488cf2e6aa DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1660235898; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Kp/FFSGBrMwArRAvwpptXuvWXmao2G9uW1WtdIfd8cQ=; b=ZOau6wudNLUUrgGytgM3VJ7rJjCkInWHLxGk2plO9DIxv8l3SItBzPcq Ay7o/0b+jWT69hUNtJV87pwx98rgCV3guFhVCYG0JsWEYG4/AJIcdDe/f w5VZiMaUF9z4uUTBA5Cc3fbP+XLNJtLaVtlArF0r9SOfg+FiYZlM8CMiq 4=; Authentication-Results: esa4.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none X-SBRS: 2.7 X-MesageID: 80448010 X-Ironport-Server: esa4.hc3370-68.iphmx.com X-Remote-IP: 162.221.156.83 X-Policy: $RELAYED IronPort-Data: A9a23:iphXnq32KEkEzBjGuPbD5b1xkn2cJEfYwER7XKvMYLTBsI5bpzAOx zAcDzvSb/qIMWWjL9F/PoS28kIPuZ7dn4VnGwdqpC1hF35El5HIVI+TRqvS04J+DSFhoGZPt Zh2hgzodZhsJpPkjk7xdOKn9RGQ7InQLpLkEunIJyttcgFtTSYlmHpLlvUwx4VlmrBVOSvU0 T/Ji5CZaQTNNwJcaDpOsfrT8Uo35pwehRtD1rAATaET1LPhvyF94KI3fcmZM3b+S49IKe+2L 86rIGaRpz6xE78FU7tJo56jGqE4aue60Tum0xK6b5OKkBlazhHe545gXBYqheW7vB3S9zx54 I0lWZVd0m7FNIWU8AgWe0Ew/y2TocSqUVIISJSymZX78qHIT5fj6/pDIUY4GM4RwKVYBXpr/ 9seKQsQXjnW0opawJrjIgVtrsEqLc2tN4IDoHBwizreCJ7KQ7iaHf+Mv4UBmm5t2IYeRp4yZ OJAAdZrRD3GbwdCJRE8D5Umkf3zrnL+bydZuBSeoq9fD237nFQtjOi1aYK9ltqiTt5PxECg9 2D/4238BE1KF9qTz2GAyyf57gPItXyiA99DfFGizdZ1hHWDy2pVDwcZPXOZi/Skjk+1W/pEN lcZvCEpqMAa5EGtC9XwQRC8iHqFpQIHHcpdFfUg7wOAwbaS5ByWblXoVRYYNoZg7pVvA2V3i BnZxLsFGACDrpWaZF+a+JLXpAnxFiwOCGUlYy4/UDsstoyLTJ4Isv7fcjpyOPfr0IWtSG6pm m7iQDsW3OtK05NSv0mv1RWe2m/3+MCUJuIgzl+PNl9J+D+Vc2JMi2aAzVHApchNI4+CJrVql ChVwpPOhAzi4HzkqcBsfAnuNOvwjxp9GGeA6WOD5rF4n9hXx1atfJpL/BZ1L1pzP8APdFfBO RGN4VsOvMYCbCbwN8ebhr5d7Ox0pZUM6Py/DqyEBjawSsEZmPC7ENFGOhfLgjGFfLkEmqAjI 5aLGfuR4YIhIf0+lFKeGrZCuYLHMwhkmgs/s7inkEn8uVdfDVbJIYo43KymMrllsP/Z+1WJq r6y9aKikn1ibQE3WQGPmaZ7ELzABSFT6UzewyCPStO+Hw== IronPort-HdrOrdr: A9a23:mfZHeal/hc6NIMnLUb+74mf9olrpDfIW3DAbv31ZSRFFG/Fxl6 iV/cjzsiWE8Ar5OUtQ4OxoV5PwIk80maQb3WBVB8bHYOCEghrPEGgB1/qB/9SIIUSXnYQxuZ uIMZIOb+EYZWIK9voSizPZLz9P+re6GdiT9ILj80s= X-IronPort-AV: E=Sophos;i="5.93,230,1654574400"; d="scan'208";a="80448010" From: Andrew Cooper To: Xen-devel CC: Andrew Cooper , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Wei Liu Subject: [PATCH] x86/msi: Switch msi_info to using pci_sbdf_t Date: Thu, 11 Aug 2022 17:37:40 +0100 Message-ID: <20220811163740.31494-1-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <5379b4bb-76c9-d7be-4bd7-2f75dde470a8@suse.com> References: <5379b4bb-76c9-d7be-4bd7-2f75dde470a8@suse.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @citrix.com) X-ZM-MESSAGEID: 1660235934472100001 This reorders the fields in msi_info, but removes all the under-the-hood parameter shuffling required to call pci_get_pdev(). No functional change. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Roger Pau Monn=C3=A9 CC: Wei Liu --- xen/arch/x86/hvm/vmsi.c | 4 +--- xen/arch/x86/include/asm/msi.h | 4 +--- xen/arch/x86/irq.c | 2 +- xen/arch/x86/msi.c | 4 ++-- xen/arch/x86/physdev.c | 10 +++++----- xen/drivers/char/ns16550.c | 4 ++-- xen/xsm/flask/hooks.c | 2 +- 7 files changed, 13 insertions(+), 17 deletions(-) diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c index 198fbd67084b..75f92885dc5e 100644 --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -750,9 +750,7 @@ static int vpci_msi_enable(const struct pci_dev *pdev, = unsigned int nr, paddr_t table_base) { struct msi_info msi_info =3D { - .seg =3D pdev->seg, - .bus =3D pdev->bus, - .devfn =3D pdev->devfn, + .sbdf =3D pdev->sbdf, .table_base =3D table_base, .entry_nr =3D nr, }; diff --git a/xen/arch/x86/include/asm/msi.h b/xen/arch/x86/include/asm/msi.h index 117379318f2c..fe670895eed2 100644 --- a/xen/arch/x86/include/asm/msi.h +++ b/xen/arch/x86/include/asm/msi.h @@ -59,9 +59,7 @@ #define FIX_MSIX_MAX_PAGES 512 =20 struct msi_info { - u16 seg; - u8 bus; - u8 devfn; + pci_sbdf_t sbdf; int irq; int entry_nr; uint64_t table_base; diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c index bf8b52d1114e..cd0c8a30a864 100644 --- a/xen/arch/x86/irq.c +++ b/xen/arch/x86/irq.c @@ -2162,7 +2162,7 @@ int map_domain_pirq( if ( !cpu_has_apic ) goto done; =20 - pdev =3D pci_get_pdev(d, PCI_SBDF(msi->seg, msi->bus, msi->devfn)); + pdev =3D pci_get_pdev(d, msi->sbdf); if ( !pdev ) goto done; =20 diff --git a/xen/arch/x86/msi.c b/xen/arch/x86/msi.c index 62c4fbcfbe55..d0bf63df1def 100644 --- a/xen/arch/x86/msi.c +++ b/xen/arch/x86/msi.c @@ -1001,7 +1001,7 @@ static int __pci_enable_msi(struct msi_info *msi, str= uct msi_desc **desc) struct msi_desc *old_desc; =20 ASSERT(pcidevs_locked()); - pdev =3D pci_get_pdev(NULL, PCI_SBDF(msi->seg, msi->bus, msi->devfn)); + pdev =3D pci_get_pdev(NULL, msi->sbdf); if ( !pdev ) return -ENODEV; =20 @@ -1056,7 +1056,7 @@ static int __pci_enable_msix(struct msi_info *msi, st= ruct msi_desc **desc) struct msi_desc *old_desc; =20 ASSERT(pcidevs_locked()); - pdev =3D pci_get_pdev(NULL, PCI_SBDF(msi->seg, msi->bus, msi->devfn)); + pdev =3D pci_get_pdev(NULL, msi->sbdf); if ( !pdev || !pdev->msix ) return -ENODEV; =20 diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c index 3a50d9d0c969..2f1d955a96bd 100644 --- a/xen/arch/x86/physdev.c +++ b/xen/arch/x86/physdev.c @@ -312,21 +312,21 @@ ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(v= oid) arg) { case MAP_PIRQ_TYPE_MSI_SEG: map.type =3D MAP_PIRQ_TYPE_MSI; - msi.seg =3D map.bus >> 16; + msi.sbdf.seg =3D map.bus >> 16; break; =20 case MAP_PIRQ_TYPE_MULTI_MSI: if ( map.table_base ) return -EINVAL; - msi.seg =3D map.bus >> 16; + msi.sbdf.seg =3D map.bus >> 16; break; =20 default: - msi.seg =3D 0; + msi.sbdf.seg =3D 0; break; } - msi.bus =3D map.bus; - msi.devfn =3D map.devfn; + msi.sbdf.bus =3D map.bus; + msi.sbdf.devfn =3D map.devfn; msi.entry_nr =3D map.entry_nr; msi.table_base =3D map.table_base; ret =3D physdev_map_pirq(map.domid, map.type, &map.index, &map.pir= q, diff --git a/xen/drivers/char/ns16550.c b/xen/drivers/char/ns16550.c index cd3573e43df3..01a05c9aa859 100644 --- a/xen/drivers/char/ns16550.c +++ b/xen/drivers/char/ns16550.c @@ -435,8 +435,8 @@ static void __init cf_check ns16550_init_postirq(struct= serial_port *port) if ( uart->msi ) { struct msi_info msi =3D { - .bus =3D uart->ps_bdf[0], - .devfn =3D PCI_DEVFN(uart->ps_bdf[1], uart->ps_bdf[2]), + .sbdf =3D PCI_SBDF(0, uart->ps_bdf[0], uart->ps_bdf[1], + uart->ps_bdf[2]), .irq =3D rc =3D uart->irq, .entry_nr =3D 1 }; diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c index 8c9cd0f2972d..8bd56644efe4 100644 --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -918,7 +918,7 @@ static int flask_map_domain_msi ( { #ifdef CONFIG_HAS_PCI_MSI const struct msi_info *msi =3D data; - uint32_t machine_bdf =3D (msi->seg << 16) | (msi->bus << 8) | msi->dev= fn; + uint32_t machine_bdf =3D msi->sbdf.sbdf; =20 AVC_AUDIT_DATA_INIT(ad, DEV); ad->device =3D machine_bdf; --=20 2.11.0