From nobody Thu Oct 30 18:25:56 2025 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1753453498; cv=pass; d=zohomail.com; s=zohoarc; b=hRN8JrSTEy7Z4zuzbo6B5LTPubzdfoW18xtfW4Dkp/NiIOQpywmcVJxzNekfNjShWbOOOipOErqyuTWy+lqNE1Ojq50SP9dhic3Tx5JSaXdQwP8JixrzuMWHyGEqD6fjsliSoEbEej/fwqfcZntQ54lwl1pi4/4ufx+6wHbDSQo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753453498; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=inGNoog43S7nN5ydBltQmDOakREqZ24RMy5InFBpc04=; b=RxdZv/x8CyoW3aWQGP+4W0/DcfXResKx7m4qGSmeDzDj8YBeQx4XKo4FXxj9PPYGVbrSXNesO1XbNFOWpqQOUISwrZHQxAyC1J8Xwg5B2V4ws439gWkhp5jwF9MoMY6G9Am1A0hsXXRbnDXR4FfeovuQdPm84H9b1gT7PwgIDMk= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1753453498187760.4016267223437; Fri, 25 Jul 2025 07:24:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1057929.1425615 (Exim 4.92) (envelope-from ) id 1ufJLi-0006xz-9I; Fri, 25 Jul 2025 14:24:38 +0000 Received: by outflank-mailman (output) from mailman id 1057929.1425615; Fri, 25 Jul 2025 14:24:38 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLi-0006xq-6T; Fri, 25 Jul 2025 14:24:38 +0000 Received: by outflank-mailman (input) for mailman id 1057929; Fri, 25 Jul 2025 14:24:37 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLh-0006kC-HF for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 14:24:37 +0000 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c200::1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 1728b892-6963-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 16:24:36 +0200 (CEST) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by PA4PR03MB7421.eurprd03.prod.outlook.com (2603:10a6:102:103::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.22; Fri, 25 Jul 2025 14:24:32 +0000 Received: from PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.8964.021; Fri, 25 Jul 2025 14:24:32 +0000 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: 1728b892-6963-11f0-b895-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RuvOUqIvEKZDDr5LvK1iNP1+zvODKUkPvmyvxCOqmTLDvrtAa/HAJXwYGJwXGATWqFAmaJwzzWW1ztEyAkQRowe62TDkXwiQXb857tL/tCWXPcb9jBd8wUMvUDn15m/vf8u8o8+raDlWDXJrj00VEwje/+4Zvwo9T6dntG1cNIs0XPH7vWGY/H2PHLTAz6CweFtPtW77qhE+XXKS1n8KROej08hdnH7MGlQJhGc4sKgcq6HwO2hbbmacer8LsIfrJm1dCdLOHzkSsUSeVJ5P3bKKCYbZi50Z6pXpC7Y2q/D2Ul7M0eIyTzz1AaoVGjrUROl4BtBHG0eYr6WhoculRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=inGNoog43S7nN5ydBltQmDOakREqZ24RMy5InFBpc04=; b=mLb6UuUoz43wvJg2YdCnl96holXntJruIEipSDxX37I/O/17LDFnu0bHqbkp6nk1fSDW6TvGd5tPgR6gl+XEI6cFAVCUWqekX1AOvAbYxSgZVLS8inw67JBPTeRyI4iyr/ZIRTtdnIyoHowOq6dDp9BTix7uYos+3cqvJigiHB8oeN1QkEIjxrikukcffgmy66IH/CTt/AikGtH0ui6SEujUHc93GrjULfn+ZIgXeoHHneTOogOihewE6zoJBBkKXS/NcSHqZP+1xNPGg9rypOUTiREa9XLdegebb4repuwhOkDAaonmxJcLZLcicbNpySHGPrdbPnZJ15TsyFbnkQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=inGNoog43S7nN5ydBltQmDOakREqZ24RMy5InFBpc04=; b=KpApqqAll5BDHgPhnn+icVCCvilCf/7NiCqftttXMh0JkuUJUnE2JjnPfV72OVcrocR9YBcpuqH9GNFkSFyBNE4yHRTY963AmINV6FZstXF0WOc+ms8v+mdlySue/a1NPPu4roV5AfPJYYjfCebPBJyyQ0rbpb+bhW/tfFsZSGutZiXIwxtxm6gIVPhZP1JlqPTmrrYdUb6AudjLLoAFffzMmSNDVOjCIOmPGdamv4hoILusUefvSggW5LfgubeXpVxpX6yhqoH0XIHRs6oqmpf58TiUEB6MaUw0OtS5cec8JSqUBAjHd90NUsFx3AYvqkZQeWDAh4OjQGQcQDDrWQ== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Stewart Hildebrand , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= , Mykyta Poturai Subject: [PATCH v1 1/6] vpci: rename and export vpci_modify_bars Thread-Topic: [PATCH v1 1/6] vpci: rename and export vpci_modify_bars Thread-Index: AQHb/W/WGeBnINj/SU6xDj4XmbeIxg== Date: Fri, 25 Jul 2025 14:24:32 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB7421:EE_ x-ms-office365-filtering-correlation-id: aa7f666f-e342-4d99-2308-08ddcb86f976 x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?7zn7h5w3W762Ucg21SRCL/pNoicHt5W3kCMekeClFuSv3eH0tGr+SmbeBr?= =?iso-8859-1?Q?kduBbhSGX969gQ54V4zn0ZprwtG5wXJ66fZgCY7m3arrFFdtSN2fDVB+M/?= =?iso-8859-1?Q?7/TQBcGQyEuYTqc+B72KJxd65KueNEVNJTaYdpheKD2pWGHKadrXg3O+Sc?= =?iso-8859-1?Q?Lu9fgPO1g0sqv8iWhBR5tlyhKf2z2adNVW55AE1L+4OLK8Sn8cURQwBXp6?= =?iso-8859-1?Q?daDGqf4rhndQBLmShaYrm015Nm/vQnC9mVvSXVFE0ERknTqxAXLbjBGOSW?= =?iso-8859-1?Q?zkaI0I6+jBTWnu3irJaPQWVpRetvauYnXAvfb4sVHKXBRn7V6FqCM88B44?= =?iso-8859-1?Q?F3ZBCIz6haM0peszZydTF1O+7SUKThmhLcWhcLH3e8uhj8Gh2ycgLTl7q9?= =?iso-8859-1?Q?VzoyBvfcE9aBdSFOZKq+8PlHeh62qrWJLAPWgP+aqjbevpKisaTjSCNylW?= =?iso-8859-1?Q?Ck8asVEDnpK7T8HlWjJv0BrYD9pb95hW90Lan+GOe419+gt+MONTPcQdeo?= =?iso-8859-1?Q?n/gRZqvKxjZi0zMryHGqMerKqo9b6iElNNb8qmG8worvJSjSwbSPMksvWI?= =?iso-8859-1?Q?JanGwW7RX/twVAW+GwGjpjso/ceAYlj34jh4AujyC8hFzawB3RE8GKxa3D?= =?iso-8859-1?Q?DmRKn37D5M81Ki03wHsz5inLfZ+fVOmxgdBGj4F6ZbWDK+ZnANRuRTrHdT?= =?iso-8859-1?Q?Y1/204zYvrNb+QCUbqqRa9lZ9jtx5CN0ahPHggO3ltBa5lBcRYTUjcIXhM?= =?iso-8859-1?Q?08x2eT9fEyP/UYAK4bMdxwB0JNFhpA6YDRx+mEbKyRxEgJzoOZ+ZqSixf4?= =?iso-8859-1?Q?6hna4WqJ59Ojit0G8b43VckU7a3JX3aZkf56k8EI39HopJarqa8ijRxI71?= =?iso-8859-1?Q?JREcOBi45x+vYhyEp72s0qXWqp4jpRkgVUKXJyXNPm78S19jvfNIZJ7QeQ?= =?iso-8859-1?Q?m3i1IsvWa3JtozR+hKKCNBS7A2/4NOy0fll3/R5WiGms2PpXIB5RjjCSTg?= =?iso-8859-1?Q?mLveEmgzK8PmPYZLGQ3rkA+vSQV0JqAzas8r8NK3UTlu7HpCftWVIHPenJ?= =?iso-8859-1?Q?KnhWVpuNV/1E8u8AbFF+/FcXwI7LaKAbcmQ89vcL1LdcRhUMh1GsFqVSex?= =?iso-8859-1?Q?6BuxheMHpeqGw1fQ4nElJsicEeUhfg3PV3bREqT3QSdvQsCdLlXHGudA9i?= =?iso-8859-1?Q?MZJJfIMIXscg2nQGWgQFL4OPuyM7VX12LWMvcQyzuFELCEkKW3OOp9V26Q?= =?iso-8859-1?Q?Cu7RdTB11sajqD2UQHqmpM2wevGnqxwah3W6ibTaKP2UYzZtp0tg3kpy5o?= =?iso-8859-1?Q?ZWvvLWHjCyuz650DOFRQANFO7Lj+vFbkEmsfB13fElAjx7VrWKl1xD4Pok?= =?iso-8859-1?Q?F0441bWcPPlMSFGLn3p1qM3DkwpgaLxwpERMgFwvRJfuhp3Vw0RTqaRXRd?= =?iso-8859-1?Q?HG2Mv1MckhzFmYB1kWnHSwtLChY63bJuVXVzC9JW8Wn2NMD6wIM66yvwGz?= =?iso-8859-1?Q?ZNLlIy60hwJDOo+IbRoGAssOHbOXh+wfVOdIHTqrNdRA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?3rYborc3aVqiZ7bACcPDgNqM7p26dFTECIiFy4clpwpGcrmyEN4EM1MR5c?= =?iso-8859-1?Q?NZiwC4gNWcKpDAId1DhW+A3NObQmGj/lRvp5ZP7GYVnn/C3D5mWTxO7wms?= =?iso-8859-1?Q?fiH2rD5mQzzdTPRinHi71Wl4PT4xfdnVDRBnZme1B3nsccHTWAhcIXonYe?= =?iso-8859-1?Q?SZUjQtpboi2XvVkrkkfxA5yLHXm/oFXrwmDVn7dtzNOlkdeQjzl/22/Ovc?= =?iso-8859-1?Q?2lTfYDSSht8lQShRCWDJvEIKCNC9LkbhWPBpIwMwpXw/bxNjeVIryOdd/O?= =?iso-8859-1?Q?NdSLVjOZXkx98ySpRJHdQeLbex/uNodMNg0gFY+m4dG+K+TWOLm9AftJxI?= =?iso-8859-1?Q?Ivm6fnZ1ZID0/TlnJSDWtZOIzodaRIxYTIvemvjwdcl/+e0G4EH/1wWDl6?= =?iso-8859-1?Q?pKhdGxYzzHiBzV/JAl9yWMBupteWtZnOSnVuJMVhag4f8MTWhHrwJU/CdB?= =?iso-8859-1?Q?RBe4xN4+gzkWmJaMvQGqH8YEZUcOFiY2IGoKJTbH51PV6pha4Z1L/cJdYd?= =?iso-8859-1?Q?RBnyA0JnqKWdtYV3xVhYNhxM0SZh+vucioiVa2YDMTk2wI/v+lZtZOwJTs?= =?iso-8859-1?Q?mPVsGdNzG7nm8XqsFwpuiRsgZrYwV6ymH30nCK6LNrBPadko/gQPiAUivG?= =?iso-8859-1?Q?Oyw3KJrOprGEcwnmbd7i0DdwAr9TBecYegseTzLvQ2GOeVfYDBSrE4hmcd?= =?iso-8859-1?Q?SQzlgVaAloANRxkJHzKbMshnpmUGMqqHoIhOKC0pca2yHXcLvQynVRFn/r?= =?iso-8859-1?Q?BabHJK3Z5/I9f23y7N39+cUMD2uSeI80062H6thg3QZ2cJZ7cSXv82iVtH?= =?iso-8859-1?Q?ng8ZaxLfxDV6tu8CmwvwizpUGKX/I5q7cuqKPOfMAtCLRwROanJAO0nGHt?= =?iso-8859-1?Q?SqgNaxq4mMXnQmSaU8xKPjRAdvPySGFY/UuSGGjBkTRjAby+/pjNW7gNpy?= =?iso-8859-1?Q?P3cYSoLMnxAnPGrRVwx5+RYaq9K56fepE5m1GOQEvW/d1mine9lK9TXrPa?= =?iso-8859-1?Q?1N/zhYBLu2K8n1BPj9l8rTOr3dpNo4JMuHrDSaS5n+W3ic2HB1IhqTJH7Q?= =?iso-8859-1?Q?RLNUqkYc/VJlBYMPPyJZmoXyRYJj48wDIagTgtPW4SEUm6MjMj4XY0CjvV?= =?iso-8859-1?Q?l1L8zgcIJNOZEsU67riekGfEVSsyZB8IYEDZ7ZqbbGUwK9pF6/fx4p7dkO?= =?iso-8859-1?Q?m432qI4oPKJM0wCo/i3lshU+s6IYXP3MmNOQxrB67xxiVx6TxW1n46b8D9?= =?iso-8859-1?Q?84SUFQWOM67BVBGo7b4HW+WzQD+uzIJDMx0I2Ls1t/SVwGcaFYENyMlhXU?= =?iso-8859-1?Q?3gCmRURttZ+JVRVPRBgIdOQkQG8Fn2/tabWIRlWvM/qqlrcNtNlxuR+1z4?= =?iso-8859-1?Q?eg5RIyJUKu5otg7u5LQI+L+wtTaVRVo876nmJLEVj2CeT29B+/t25VCNnL?= =?iso-8859-1?Q?CGvtHt4ar4G56TrA4RT0fcdrL+P5PwpaixBbgOtGIV9w07jOXgKhy8u23z?= =?iso-8859-1?Q?y0LeJ1bT0s5UgSgZtsr1aVxeHjdYnGde0mQ8sfR2GSPcxME2W4JQzHGoiN?= =?iso-8859-1?Q?XOTgCwGk0l2myylOmRP9W3vEbbaQexv/6h8JwttwYWaEf/E+X6own7Tlbc?= =?iso-8859-1?Q?msYUl5jQWnsJm0aQ/lVFrOl62p2i7u9oZO5dglWwMu9NO16SupnRQJIw?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: aa7f666f-e342-4d99-2308-08ddcb86f976 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2025 14:24:32.2316 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: XqamBGH7LweSF58ATgKihTsG6ALno7/a+UmQG+bdB5Se6kab0th71/CUtFnnMyUizNbHMSP4WN2D0/P92sSyeQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7421 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1753453499640116600 Content-Type: text/plain; charset="utf-8" From: Stewart Hildebrand Export functions required for SR-IOV support. Signed-off-by: Stewart Hildebrand Signed-off-by: Mykyta Poturai Reviewed-by: Teddy Astie --- xen/drivers/vpci/header.c | 16 +++++++++------- xen/include/xen/vpci.h | 3 +++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index bb76e70799..c4d8c45640 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -304,7 +304,7 @@ static void defer_map(const struct pci_dev *pdev, uint1= 6_t cmd, bool rom_only) raise_softirq(SCHEDULE_SOFTIRQ); } =20 -static int modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_= only) +int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_on= ly) { struct vpci_header *header =3D &pdev->vpci->header; struct pci_dev *tmp; @@ -545,7 +545,7 @@ static void cf_check cmd_write( * memory decoding bit has not been changed, so leave everything a= s-is, * hoping the guest will realize and try again. */ - modify_bars(pdev, cmd, false); + vpci_modify_bars(pdev, cmd, false); else pci_conf_write16(pdev->sbdf, reg, cmd); } @@ -713,13 +713,15 @@ static void cf_check rom_write( * Pass PCI_COMMAND_MEMORY or 0 to signal a map/unmap request, note th= at * this fabricated command is never going to be written to the registe= r. */ - else if ( modify_bars(pdev, new_enabled ? PCI_COMMAND_MEMORY : 0, true= ) ) + else if ( vpci_modify_bars(pdev, + new_enabled ? PCI_COMMAND_MEMORY : 0, + true) ) /* * No memory has been added or removed from the p2m (because the a= ctual * p2m changes are deferred in defer_map) and the ROM enable bit h= as * not been changed, so leave everything as-is, hoping the guest w= ill * realize and try again. It's important to not update rom->addr i= n the - * unmap case if modify_bars has failed, or future attempts would + * unmap case if vpci_modify_bars has failed, or future attempts w= ould * attempt to unmap the wrong address. */ return; @@ -894,8 +896,8 @@ static int cf_check init_header(struct pci_dev *pdev) /* * For DomUs, clear PCI_COMMAND_{MASTER,MEMORY,IO} and other * DomU-controllable bits in PCI_COMMAND. Devices assigned to DomUs wi= ll - * start with memory decoding disabled, and modify_bars() will not be = called - * at the end of this function. + * start with memory decoding disabled, and vpci_modify_bars() will no= t be + * called at the end of this function. */ if ( !is_hwdom ) cmd &=3D ~(PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_INVALIDATE | @@ -1020,7 +1022,7 @@ static int cf_check init_header(struct pci_dev *pdev) goto fail; } =20 - return (cmd & PCI_COMMAND_MEMORY) ? modify_bars(pdev, cmd, false) : 0; + return (cmd & PCI_COMMAND_MEMORY) ? vpci_modify_bars(pdev, cmd, false)= : 0; =20 fail: pci_conf_write16(pdev->sbdf, PCI_COMMAND, cmd); diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 6a481a4e89..5ef35b23c7 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -286,6 +286,9 @@ bool vpci_ecam_write(pci_sbdf_t sbdf, unsigned int reg,= unsigned int len, bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, unsigned int len, unsigned long *data); =20 +/* Map/unmap the BARs of a vPCI device. */ +int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_on= ly); + #endif /* __XEN__ */ =20 #else /* !CONFIG_HAS_VPCI */ --=20 2.34.1 From nobody Thu Oct 30 18:25:56 2025 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1753453499; cv=pass; d=zohomail.com; s=zohoarc; b=iUASQjpdndLkE4wJNV8ShHUnNzpUqv0+leQcpNmWnb0zePhKB56zx7rckQ/5fuPLumZlz+b73L6qwWWFacqwO9PxfZus6sXjcQ6dpdmbb7F27Q4caAypm+ni0R8rL0c/BQiRAHH46ozs+b3YicGrHNF2bR4aru0drDRvd7Y4V+0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753453499; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=T5V223bID9Bp43TRdSpuWHujmQUuuVVN/RoLUT7njmk=; b=EfuyIOCYOGXvAWOjIpBavFc/oifCP2xPJCvCoF9x0is45hBp0eQ2KxOUkfurHX/mCcEkUmbGUOv/QyYuxZJHC7oaHpMbFJ7J70oZLICii7fXPxAktwf69yl/9p8x5SxKSyQtgDRC022O41CTYziELT7G/aUrA7fvbru8b3ogS6Y= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 175345349981533.382416536558594; Fri, 25 Jul 2025 07:24:59 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1057930.1425625 (Exim 4.92) (envelope-from ) id 1ufJLk-0007CO-LT; Fri, 25 Jul 2025 14:24:40 +0000 Received: by outflank-mailman (output) from mailman id 1057930.1425625; Fri, 25 Jul 2025 14:24:40 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLk-0007CF-IO; Fri, 25 Jul 2025 14:24:40 +0000 Received: by outflank-mailman (input) for mailman id 1057930; Fri, 25 Jul 2025 14:24:39 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLi-0006kC-VQ for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 14:24:38 +0000 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c200::1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 1808de64-6963-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 16:24:37 +0200 (CEST) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by PA4PR03MB7421.eurprd03.prod.outlook.com (2603:10a6:102:103::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.22; Fri, 25 Jul 2025 14:24:33 +0000 Received: from PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.8964.021; Fri, 25 Jul 2025 14:24:33 +0000 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: 1808de64-6963-11f0-b895-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=orE5g9S52749otnOE2DroWTTUBj4DRqAvmCtORyxIUoxMJLaAM2mqa0HGk8BWpwMezfys+LpGjT1SRTJRqG60WpPoKY1T/hDQU5H4fj31SzuUHtolXSOKrx8eWXBosRaLoktFB9ON7ueV1WmYEAMWmwBXJUcwVYnJ8nmV9nqo6lzV1Dv+e/msnS2A32RzBuHOGxsZS8ia2Y2h9CMwhurrMlF9BrgimWd4Gc85M3W3K8Lv/A+DD4ekK9Vk0WzEwx+2/BRq4XAvxo6clsorM9cFORKjcXRwUOSQrLaj+JO0TfgYzt0mfJmtnVmovfihsEAqFu9Z5gFAMh6/tgM01Rfwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=T5V223bID9Bp43TRdSpuWHujmQUuuVVN/RoLUT7njmk=; b=Y6ieo3Jrg1+Ke6CW26sjXDYCpa6J+iZOnwgGW48I8Ki6peDRqT4EJTV3ezydIGG5VcwphAJg4iwmqFPrCGi5KgytTBUgKmqEmNNF9sEiUgla77A9xJkl+4bfIX4x6JF2JkJ/K9zzvYO6ziMehdNcRzA3jYZ0B2GTKMcv69bBYBtKHD50p198FM0DHU7TieasOsuCdQPZSb087sghXItRaQJtJv8aY4FlbZfvsV5QsBii031yg8Jg0NgyjJ/bMFVcZPXleGy8LI9hMC0JPk4GkmMEoOVVqAUoB9symMnab6IuZWxer1fRRy/jx+txSARQ+U6XEjAMeQiX7rlL72xWSg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=T5V223bID9Bp43TRdSpuWHujmQUuuVVN/RoLUT7njmk=; b=sXmiw5FWeVeyij1dTMTALEZ8RYwHj+j/bbte9Qyz9baRR4nmtuYsOwsfPmRtsdBHt77gpZmLe3jm90WiTQcdhCGWhSwKOckDDgl3Y5zF7EmBG6ONTwZRbqhe2hBb0RUhTvbpltwJv3GyaoJHOkIgQRyOxG5YsEEbLz9jBEWKSPUJUgBzTlIPDjuRyZVsQtBP/1SA0ZbHvP1mo6Pzt8UQ4rA6i/mA69JdmUDqxyVCz39C9aSx2ruvyA1DnhoDYd3cIUSjxDrfRF6tbPYrblei11RCxeNQqW3e7hjOrcGfymjJhNFnZVVy3vTh0WpIrPNW+EYtwhKSrDjl7+3/XKu1fw== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Stewart Hildebrand , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= , Mykyta Poturai Subject: [PATCH v1 2/6] vpci: rename and export vpci_guest_mem_bar_{read,write} Thread-Topic: [PATCH v1 2/6] vpci: rename and export vpci_guest_mem_bar_{read,write} Thread-Index: AQHb/W/W40tal2peUECMHrYixL4j0A== Date: Fri, 25 Jul 2025 14:24:32 +0000 Message-ID: <94524317cf2a8719053fe1038bf39c30c99c280e.1753450965.git.mykyta_poturai@epam.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB7421:EE_ x-ms-office365-filtering-correlation-id: c54fe4f0-4254-4a6e-8f5a-08ddcb86f9a7 x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?E0p3l32k5dsbilGWjw6Ym/DmYA1YUSP0lA3XJBFdjK2kvTxPVsxISiz6di?= =?iso-8859-1?Q?NbT4XWWU875jEA0WtHqEAhPhmiqHgTUFdv54zHAfHbvwRmsHoaiFOuKIxl?= =?iso-8859-1?Q?YffFRg0LtdlzX8kc1emUOv7Pc3mjPZ7EpRZ3EhRIE4UR1bPdQgFM+DQw7E?= =?iso-8859-1?Q?JJMi6wzSPdROX3ebQsaj3gOHhHPS+mRxD+Xct3OTGp3xKdwd65XI+InfOQ?= =?iso-8859-1?Q?4gfFzzMDG+0wZKmjhilIs3AaiivYtHt6OY1w1xFybcYRT82SY0341FmXwU?= =?iso-8859-1?Q?y3QDNXqsu6c+61QR2rlXHOyHCG5dUXBFxHfv4lZEO8qrA2ckoGnzUPL8Vt?= =?iso-8859-1?Q?2ul5kkXef4+elXrFhLpE7XEov5ZsDZhbU08cjnFfx9J+/0UFjhBEGs29Sj?= =?iso-8859-1?Q?cNWsXlIuKDjlaNHeF3DEQ29VVekQu47cSkrw1LwhbHtfkwiCS0XltgyVoQ?= =?iso-8859-1?Q?iztovYCck29DhCtfEl9ERUKkPD0u2TLH/x0DmlfMboYsdKQeYyA0ogcivu?= =?iso-8859-1?Q?bMDP0yhcwcvHpJ8oWqFc0clfvxC8S4bP2oLUKRn7nWi21BBytakt98LrGd?= =?iso-8859-1?Q?Mv/A1CRv76WWjJMCYwzPJtJo5UEiGBm5X5vN7pKraFgJ3abb1yFWiLFK2D?= =?iso-8859-1?Q?attIOkMnJCgGwuExu/3D7HdynFleHxUZu5alL544jrXYGgm+nvSmjYn7D7?= =?iso-8859-1?Q?r45K5Ussnvbanwsf3g0ky/YFQd0H4Fv9MhTYZ3Tq6yo0EH2K7I9g52Nx7L?= =?iso-8859-1?Q?7avA5tV/SmRg4OZRlSAEaFhCbp9e6ALt5H/fUOZUZfK0KpX/sRr4Oy9r8y?= =?iso-8859-1?Q?U/YJDY64IvwtEB63+IcD6yxIpP9TXbC9SRel4gFHYfNKHI7ZBLV2ak1pyS?= =?iso-8859-1?Q?fTO7XwHiRp9lK3EmfKN1exP0EujNB126SmeB2fmbUY1PA3L/+XppXa/Qrx?= =?iso-8859-1?Q?G3OTts49UviWMTIkDQd8n163Um8NmNXHg/zXi1OfFkbpAAj4YhXF2p1mP3?= =?iso-8859-1?Q?9p41QERk6Heah0/5uPTeX563Erx3QXwcMIbCC+icZn2r3CvOMcxceb8RIX?= =?iso-8859-1?Q?isyDFRmqRKwafQQPUnCPGYnFvMlYSUOgz3ENqFYDUR+LV5/1HgYYMh4zv/?= =?iso-8859-1?Q?1ecvPKeh12i48KkatQqnua/BJ9yc643hggwjgMWBVNo5sT2EgXJNmBI03V?= =?iso-8859-1?Q?RPFV1qdHMK2Qz6yI7uphzMcG5ZQE9dTD+cqnS/jV96AK2m/qSpPl/hGG/w?= =?iso-8859-1?Q?7pokKPYzwSqTnuuQvrekQwTzl9PREbn4EahKzJ83pWYlEoqGBkhpf8TvCk?= =?iso-8859-1?Q?6tkz3c8k1opD3U/wmVlbrQv45OBOMbGuwVVD3R4Dv2Nw8UXxi1bp88zs6z?= =?iso-8859-1?Q?sA6LHF8IhxROznphCgz/uZaRQRQk6pXJs4UoXyFfCqmZTDf/B5Npoje62s?= =?iso-8859-1?Q?79yr6gRUpszUyvjZEhuWnj6LbB8KMD6objsSYrPuz5sD2fb7kTLH6KjfdQ?= =?iso-8859-1?Q?LslyIJy2kAJ+BL3blSRq+xqWZudk6ONIYIWTKM51ALeQ=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?Fr0jMZt6bCh8AE8hE+wI4H0iaMkPWP/HQOnWOwHru42j6yUzMI+QL+50Ss?= =?iso-8859-1?Q?7zNXUqPutufKiz7fFIZMoQKC82+ZboRsD5+KN20rZfJzYJGcTNawEVjKYc?= =?iso-8859-1?Q?1dFhiMIl68h8bYCa1H2VwZPQ0t3BNBRQ3lxAEYbJrc1EGcrBUBr8/ClO43?= =?iso-8859-1?Q?m9BG2Sv6VPBJh4j7sBn48xCUYTMQ9GopG2JlMpEDDv59iAM32hRkjItcbh?= =?iso-8859-1?Q?G5m4Wf3d9LeY6xVaD/EUidl6XycbgyBIROpEYzv6y/sj5go/WsYKfi5ZjL?= =?iso-8859-1?Q?v8pdPWLBEAgoQ/oa//LARRrqEzqxPS2TtYe18wX8DZFmXS/VGvJtTEGvWY?= =?iso-8859-1?Q?SuVTNZE6PPSnN+uWL6gNYvVUSxT/Wwy4mNkgZ3AJu/IRPFwgmMDVkjmqc/?= =?iso-8859-1?Q?zKcpMILS/TrzPyXMagxs+VepjWcpCSatYWQuqtRgjMFwGf3GFB66EnOeki?= =?iso-8859-1?Q?TQTbrRhDOmYTFvWXIcOF6qjcwGspmALAQWCboAx5hU82/qZ+nqJ6NCiwYD?= =?iso-8859-1?Q?Dim1jYomambgzLm/SHZ1ICDrLqtu+ZoG7hCE+kDNouMFYkbgm2FfTIWjuo?= =?iso-8859-1?Q?5Rf0hDohFJqsanGbyJozsYrbto1uEQV8O19hOP4jBgqxC4aLKn4YQWwLSl?= =?iso-8859-1?Q?VxkYkoNEuW5WGju7OcUSZNbGtB0L6M9EHq4AH4pwk/1BTOVnTQM+cDNXOM?= =?iso-8859-1?Q?K8ezJwDfKgjEJA8z8nqnVJFHVkndtV+aNSLra7ZrKyiLkW59xbO2CrtQ0u?= =?iso-8859-1?Q?johbWfriPUdURpaPMTyMZa/ZU/Nkek68sP2Bu/sX8f+LD5ndwFFPHfVIkB?= =?iso-8859-1?Q?w5Yv7LJ/zlZW7HRfQPz/aKruXv5qzIqjujZCNcvB643sWyCVS/O4175rgn?= =?iso-8859-1?Q?qYTZMg83v91xVd5Fxf4VWrAz0qHjHEalM5g3xBjmDjJXgqpzCX0K1ZBGzk?= =?iso-8859-1?Q?NxkwhMjZulzB2MfRPAXp6ojCGxERKhVazw2RLE8yf/pa4PDZIxaHXxnSNP?= =?iso-8859-1?Q?NmMTuyrYUaKMrxa7gn1/1OtKMu3J43NG3JuPqqlCJgW8PGygWcIxU5pLLR?= =?iso-8859-1?Q?3uXQAk4oPMnha8aCUYfsge7qWKi5Poy4pTDu20XKUwAe3fER8JKA8TxHR8?= =?iso-8859-1?Q?Vg5dSLfXenOzQU40CRlh9USxYgwEYGjbWi+YrhgfzN+CWCrfK8loTUyUp9?= =?iso-8859-1?Q?TOBcX3351srkGYxWXapsMeyoAlfb944I/uLXqcoWvrQo07wn+7T0vcXFpg?= =?iso-8859-1?Q?y3wxf6GvaS3hKeyGbY+qSHJvuBJX6cStzUI75pKlVVLgimUqGwRB9JjThP?= =?iso-8859-1?Q?muuXwF2j3RMtGDpRjXX+X2LUAzvtmmQcIp6vlgvEPsGU14TuL5ycDwMzZj?= =?iso-8859-1?Q?yHDegT5cOxrqNDLud3WL9dVRFZkdrDTTDfsfy6+mroSAkK66cgfMlesTAg?= =?iso-8859-1?Q?oq+LERcbGENYe1jhp8dBMIN4fgwv/Bzz9azJc7Fifve5tSUqtsPic9Bemo?= =?iso-8859-1?Q?zUbild9Bxxq5za8GGUawt7+VtqOzIw+A4a58AT1dUKavZRXAy12shzolzk?= =?iso-8859-1?Q?tZg+enQcGn3cz4MSnIZp+Zn9sZ8KWJ3rq6jMOCmVI2adc0DhUSTTAD48s+?= =?iso-8859-1?Q?Zax/OYkkwSw0sMcGzFWFBuk3knBsGcBdSVLtNGs/XFZQ5ac7lTuTKAZg?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c54fe4f0-4254-4a6e-8f5a-08ddcb86f9a7 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2025 14:24:32.5331 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RcnfzaLZyreuan3fAM0esrb03NHMGQ5g/y5rSgmVkBuQwz02o0HagJucoPZyqjNaPBPDgiWg1Y6bfyp0O6OoWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7421 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1753453501512116600 Content-Type: text/plain; charset="utf-8" From: Stewart Hildebrand Export functions required for SR-IOV support. Signed-off-by: Stewart Hildebrand Signed-off-by: Mykyta Poturai Reviewed-by: Teddy Astie --- xen/drivers/vpci/header.c | 20 +++++++++++--------- xen/include/xen/vpci.h | 6 ++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index c4d8c45640..f33fb27bde 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -610,9 +610,9 @@ static void cf_check bar_write( pci_conf_write32(pdev->sbdf, reg, val); } =20 -static void cf_check guest_mem_bar_write(const struct pci_dev *pdev, - unsigned int reg, uint32_t val, - void *data) +void cf_check vpci_guest_mem_bar_write(const struct pci_dev *pdev, + unsigned int reg, uint32_t val, + void *data) { struct vpci_bar *bar =3D data; bool hi =3D false; @@ -652,8 +652,8 @@ static void cf_check guest_mem_bar_write(const struct p= ci_dev *pdev, bar->guest_addr =3D guest_addr; } =20 -static uint32_t cf_check guest_mem_bar_read(const struct pci_dev *pdev, - unsigned int reg, void *data) +uint32_t cf_check vpci_guest_mem_bar_read(const struct pci_dev *pdev, + unsigned int reg, void *data) { const struct vpci_bar *bar =3D data; uint32_t reg_val; @@ -920,8 +920,9 @@ static int cf_check init_header(struct pci_dev *pdev) bars[i].type =3D VPCI_BAR_MEM64_HI; rc =3D vpci_add_register(pdev->vpci, is_hwdom ? vpci_hw_read32 - : guest_mem_bar_read, - is_hwdom ? bar_write : guest_mem_bar_wr= ite, + : vpci_guest_mem_bar_read, + is_hwdom ? bar_write + : vpci_guest_mem_bar_write, reg, 4, &bars[i]); if ( rc ) goto fail; @@ -979,8 +980,9 @@ static int cf_check init_header(struct pci_dev *pdev) bars[i].prefetchable =3D val & PCI_BASE_ADDRESS_MEM_PREFETCH; =20 rc =3D vpci_add_register(pdev->vpci, - is_hwdom ? vpci_hw_read32 : guest_mem_bar_r= ead, - is_hwdom ? bar_write : guest_mem_bar_write, + is_hwdom ? vpci_hw_read32 + : vpci_guest_mem_bar_read, + is_hwdom ? bar_write : vpci_guest_mem_bar_w= rite, reg, 4, &bars[i]); if ( rc ) goto fail; diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 5ef35b23c7..0f0f321023 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -69,6 +69,12 @@ void vpci_write(pci_sbdf_t sbdf, unsigned int reg, unsig= ned int size, uint32_t cf_check vpci_read_val( const struct pci_dev *pdev, unsigned int reg, void *data); =20 +void cf_check vpci_guest_mem_bar_write(const struct pci_dev *pdev, + unsigned int reg, uint32_t val, + void *data); +uint32_t cf_check vpci_guest_mem_bar_read(const struct pci_dev *pdev, + unsigned int reg, void *data); + /* Passthrough handlers. */ uint32_t cf_check vpci_hw_read8( const struct pci_dev *pdev, unsigned int reg, void *data); --=20 2.34.1 From nobody Thu Oct 30 18:25:56 2025 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1753453495; cv=pass; d=zohomail.com; s=zohoarc; b=eIJphLgKcA4REi/zFXRXq1olS1kkvRxWUM4UQIOKXnwq8uvOvBoQW/U90vxaQP9ZN8i8URJgGbipgvpnCMfDWjJ7JcmuG6fMUnipcPJhDx4Dm9pZhTVU2QAJ7m2O/s+cAJSAXddHSPI7oE3w6EsBu8xw+yt3IQ2e0LFBUszBrsg= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753453495; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=JIQLJudvS0iGvsbes6lTN6/xCz1ojow732/uGj/xOVU=; b=kJXdy0l88BjGx60qo6AKXwwdMusp13Ob2cz7e6rh6APFMHTer15j1nRNQVqpxmHFKlI4zbDXQpITvC0GTo37W96ahAY5teNO6sRvhEhpilYbK1HRpbSpjfapTdD4vjnjqaJbS0/vRdFumuCps87zhip9GRyCUrksYt/chAaW/2Q= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 17534534957131011.8369989025609; Fri, 25 Jul 2025 07:24:55 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1057931.1425635 (Exim 4.92) (envelope-from ) id 1ufJLl-0007Rk-Sf; Fri, 25 Jul 2025 14:24:41 +0000 Received: by outflank-mailman (output) from mailman id 1057931.1425635; Fri, 25 Jul 2025 14:24:41 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLl-0007RN-Pn; Fri, 25 Jul 2025 14:24:41 +0000 Received: by outflank-mailman (input) for mailman id 1057931; Fri, 25 Jul 2025 14:24:40 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLk-0006kC-Ct for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 14:24:40 +0000 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c200::1]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 18e5f7e2-6963-11f0-b895-0df219b8e170; Fri, 25 Jul 2025 16:24:39 +0200 (CEST) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by PA4PR03MB7421.eurprd03.prod.outlook.com (2603:10a6:102:103::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.22; Fri, 25 Jul 2025 14:24:33 +0000 Received: from PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.8964.021; Fri, 25 Jul 2025 14:24:33 +0000 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: 18e5f7e2-6963-11f0-b895-0df219b8e170 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fV5uiZJrruc6giti5NfN7aXPY6nxEqyjSj8ksgLya6Ysz2bjGcvaio9tegSFYk5KGUr/lwRitSGVHQIchSyfM5/EIvwdTpXwqw3Srs0EbIVOj3+PsTfsG6aPkLAIq+0exWSNWcSzRwGAJ5mKEHRQQOAtfQZT68wFDYOj/+GOb9ExnTOMTCUhhd+X6i38EeFszYbRUUnk7PTfFwkeNQF3sLFUA5xwxqHpj4afi7fn2e8khABduM+zJq76ZszI2O/vZVKonMongRhRZZUDAvgnvmpaQKzV73XPjdIZkRzMJ6R/hpp1kiyPXjM+P77/lRlgm5HgYyEaQrxnQjOjFH0ogg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JIQLJudvS0iGvsbes6lTN6/xCz1ojow732/uGj/xOVU=; b=ayF9ssHGfInNsv87QIXi25L442KRK2PBT+Q4Bo4A8xhe3pKgAUlpFW6QdOlOUvsvtGyNuUR/+98w338qplQu38ksDWzcW210bcgfPotVBMM+ui+jBvgI7rG+1T/dFYY66FYb+iPJheJMJ8B7PqCZY/0M6Ae8qCgVC/k+ZrcjgIqyG5mmmIMdruOap0WCMAqRInO1/JqdPaMIj3PJQolWBEKTQlQuFWu1s+cYqoNm+74mMzinvD8+8pmw/mY/xOn06fFJkjJ0B+UV4sCnTX6qDVEUdwC+tjrslP/JW+5YjaVICsQHyEKPAp+ZJvBcQ1w3SPIi2fFuC4Er/O48sJcjRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JIQLJudvS0iGvsbes6lTN6/xCz1ojow732/uGj/xOVU=; b=qX/6IQSwasNpctMwrlE1sURjb3+iTEi1dW9Y9YtWmdg9WaPJCnBm4nvLzmbdt/wkxXoD1ZZj7e67bEXyu4hYQGGXTBkdplTTnge7/zI4S8X2wDjWgTPuRU1cziKb7e3edDwd7sKmR5MEVEZYvFOcuASkAYEle5K96zKeGODakEqNzK/PbCCDXtoz8AbldrpYVlWavHWKA/PGh8FcjdeO5x1YmSPsFLcPtfQSt9i4BzfPBybbyIIEdTRIUvV94FR/WslJj4sSCc/j83OxJ/2OTROigpHsIqT+Pvr4iJX4AGwy4pI6DR/S+75KtnGsbp86IP6PQuQoGIXGggxGxskyQA== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Mykyta Poturai , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= Subject: [PATCH v1 3/6] vpci: rename and export vpci_bar_add_rangeset Thread-Topic: [PATCH v1 3/6] vpci: rename and export vpci_bar_add_rangeset Thread-Index: AQHb/W/XjlJXEWa6DE2pU6XZEEu7zw== Date: Fri, 25 Jul 2025 14:24:32 +0000 Message-ID: <2c7999d1186738a9f57364f127b9fbbbd440ca78.1753450965.git.mykyta_poturai@epam.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB7421:EE_ x-ms-office365-filtering-correlation-id: bfd750f6-17d4-45ba-7e72-08ddcb86f9c1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?G3dohrMkJLSDNNj50NbRpEaN1FAVSPWXmaWG+icUh+FuDmYiYqqEFgyq1r?= =?iso-8859-1?Q?FN14JopF5tuBwOrNTnqP+d1hwL3PLXhrSK4Ln5BFjvVTcEiQGtHckY8EO1?= =?iso-8859-1?Q?HHeMt5XYTG3y/ycu2orjylXS9PkGUi2JOJdldsMm1kNdtEffVqSyCd0eGn?= =?iso-8859-1?Q?ob4zlRI0jG5kvnM84BlUml4HYRG2jfygjJiE1og7LOevFkrWu9pOun33La?= =?iso-8859-1?Q?GHclJgsV0VHavoi/1V8wafd2Rtg5BxhuI9NTN4w9Q2hDUs0/9fYL/mm/yx?= =?iso-8859-1?Q?mpsyzhi61Vu01cMsSH5SRDiZKOQRzXbhg6wgxEoRtynHx0mFV8eje5lSeW?= =?iso-8859-1?Q?gJ5tFX2EoXtVulvtnYrcwjInaIKuCeSGP0otz8dD6Ch8A+2aaMfvlVdTkn?= =?iso-8859-1?Q?JQSSAYdM8fL0cHHCTl8Dr0nCxXSR8/rk6qZ0Q2TVsMZ5v/O4Rr47WZ346O?= =?iso-8859-1?Q?b9uXR38MAQqTXWAPnEKrz8pl3qYJ/qzL77HpY22W6LUosE67ITdhL3Wr4i?= =?iso-8859-1?Q?epY45QmeePOd8PtVjmo1uvC+Ri/EC0ultPhIeYScwdGx3rd8FDxErrtJoa?= =?iso-8859-1?Q?GioZ8Rf34b9Q4GZIGcB12xj8vCu2fHCkRQEgpO9podkgL5apR3FS2Kk9Rr?= =?iso-8859-1?Q?yOX/77kcVI5y0a/j7snQ1h8XQ0rF6ieU26RLTQNEZMStGxApb8epQ/3Wbw?= =?iso-8859-1?Q?pdlEP/KxWntvBtosae162YWHEMh+DbTxqKyQe0XamNTK4pn5HqlUqU70t7?= =?iso-8859-1?Q?SFGOIOcooLpXDSnNEw0WLkjzhfn7SpcSJx0JjNpuWyyz6BytIgjtZd/GCf?= =?iso-8859-1?Q?XLuI7/yjZQt1NEjDA5VqZSCu6O49zLsgSU8rrWvCs871gGvHVT78O/IP4Y?= =?iso-8859-1?Q?jN0SRgRBjdiY8tnFhYB0Tl+7Dn6hMuGfinQir3k76OmpQC/zfNTtpRpTkG?= =?iso-8859-1?Q?mTXuGW6bJEi8BPDkoRUBwYAHiRH6a2TODDWq6IoN9j1LeLCfMu6cB4jp/N?= =?iso-8859-1?Q?DBhKE2lUMmHRB4fzFKlKIClSyWFKQO4+QgMP4EqBFddLvavrnt3XkKmngi?= =?iso-8859-1?Q?V7S6+5cqgQgtSGZLxTHdulnK3gp1fwWugRxLtK0AOLRU0huxV+mlLMGB5U?= =?iso-8859-1?Q?xgv93aXvT8xogHYL8WdqKjvKM9g59dHyKgKMp7kZCrQ2sFa7fCEzH/0wd6?= =?iso-8859-1?Q?NbPJpcaxRQCrWfE8+NDEO/AzXpIhEtUTIvOKAML8ljGyW8qOgcM5qN/Mhx?= =?iso-8859-1?Q?J3XdY0r2ZXfBhr680c4ICcVqeNxrgozcTqOOD0sxNsVQOBhgxdmDB4LTh5?= =?iso-8859-1?Q?IWo2LBQH6NP0s2iFcLn1sDWHRPvvwQKUSR5IJtqXT36w6A+Wl2GH0SmR7l?= =?iso-8859-1?Q?3f1PDei4c30859Gg9pjbWd0AU+wCikLDud2Cl0gWOkGgHxKXR3U7dyPCgE?= =?iso-8859-1?Q?9lgW7GWXlmLme4ZQxiXHXMUSfo7IvXdMigx34SnHNBzaanuj2sDUu44iIH?= =?iso-8859-1?Q?9LTJ4gDO7jNe8AiVke8Tns/Asp80dE36GB7YunstlF/Q=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?J2wj+zwHbeodHXD24MQTcR56Yh+uVji2qJP46zJbWEInMHaAT73pX145W9?= =?iso-8859-1?Q?sYrJwNh1xlXpF4GGt1jwbM2ktISgyByLH+toxztL68pnvGbkRhCzYBbyYD?= =?iso-8859-1?Q?PRtOofztiX60ID/FU1I6Ps68+AUynfEwiu/l98bL0gLVbaSDrrqCf5l1sb?= =?iso-8859-1?Q?7c5zJ59vQnruRafJSvziEQLqvoUZ8JLDfpanaikEpC6J7TplcChq9M86qV?= =?iso-8859-1?Q?tjAhAftcN+6c4ss9c/g83JY0i9hcveb6zWg43dqj9WlzMM3eqUC6nYLdJq?= =?iso-8859-1?Q?q2MvY8KobwdGb7IMaxnajeT2TwPKmkmTZ/mdsNdOzqKYbE45CScmD3L+w9?= =?iso-8859-1?Q?/lOGXHnGIbRR4kacfs7SWEMr047ss4livgrw+UoyOmMoDiAVDuSwEaDiRB?= =?iso-8859-1?Q?9DtxwQsSDGj8BhXyBEmVM7t8XwdPNLPsIvwZv7yUWIGX7Og97quGIeZPIU?= =?iso-8859-1?Q?FJaavsM/0fBZhAZxOj+78KAeAGjDTcurrl5j+IY6JeUweai7J2ktFqOXEn?= =?iso-8859-1?Q?NF6BwJrX/GtSGq0ijjOIbb+xgS84fqIDme6K/QHGoYwYcCt1zHWW87wyCS?= =?iso-8859-1?Q?16qxMp4Sc+CLXkLDL7K/6z2NZQBpZINLxMUvmpKJW7MaUnjeFrV/+7W1xk?= =?iso-8859-1?Q?DcgpRR8PM2Ri1MRgSiSCwIKaK/8t+FzKt5iUdz6wpT1dQUa8FXfAZR52/w?= =?iso-8859-1?Q?fjMUB6UdlREGSsbXXYkGungbia0PWzPMivzz1ms+2qNqO02WHkyVR45U9x?= =?iso-8859-1?Q?JO2UrwSWFk9kj0YHVcQHfbU6lGfcMUer9VvvZ9JCQZT5BjulcZ+ICPAoz2?= =?iso-8859-1?Q?Yr2er96HFngn3eUGWE1b9iMP0cB9Td5344TVydENCY/T/Cpft/NuZlpGqY?= =?iso-8859-1?Q?TGMcvVG/kpg4pZooh/BlKtySZtnPZ18U116UKeNZkDoK3rB0baW5xvqU29?= =?iso-8859-1?Q?y+S3IG7QBEgFr9NoiNLQy3YMNGClLqgujpk/n3HCIu/GuQ6WBIyXDi3I3+?= =?iso-8859-1?Q?uGvamWGzU0q2Q0sdUt+jcAtrwGpl1924RzYvO8hD4/ESOm6qhOx1bvZ7Mj?= =?iso-8859-1?Q?9ANwYVSOevqaa7sL7Cd/xlu00oeMdSCWs/p7gPi5kx1Uwt98Zx7IxURalF?= =?iso-8859-1?Q?1AB15yr0U72f4LMAkhql/DTY4WQFejXFP49TCwoPh9zdpDl53g3g9V1dwa?= =?iso-8859-1?Q?tUWy+y0wIj8SG0qhslcrHzIC5SW1p1DAfe6jW4h484QI3MRdvGtMqVUSNK?= =?iso-8859-1?Q?kpRqogekabb9KZ8zs1j6wjen0r4k2kT1+vzSMYwScZanAf7jL+xIzZ1LPp?= =?iso-8859-1?Q?nENIeaVxu2CBc2QJftaS4ISrhMjV0ts/bTTH2D+UPv08cdelJdBvHK4CZq?= =?iso-8859-1?Q?EjbEeie2JEiZF5WqD7r80SuM3yfLMp7NjVFaH6utZAfza8O4aPTig5WBD2?= =?iso-8859-1?Q?upSwMCpMVxE7ImBTR/DJxvAqdxii2KmoUFUUu/vrO9qmoe5wg+ELtXJ7Dc?= =?iso-8859-1?Q?gzstkZsatZP9HWdKbNFRTpictNdRC0GJ7nSmW8OZ8n8ltwo0cbjSelqbMp?= =?iso-8859-1?Q?ISDkbzi22mgq/Oi4f6xX0722wogYlp+POXwZCwvD9WtqWwNE6bzpxjnTck?= =?iso-8859-1?Q?8y399D0DmWd1iKE/ZbetQi216Rp6bkdji3FQBTc1FZTlHFck3oOg8hzg?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfd750f6-17d4-45ba-7e72-08ddcb86f9c1 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2025 14:24:32.8687 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: CkeH0G1s4FTUAANrJrIn97uChNQiXMaTWFGjmdr1qOtz4G0B2cyFLA7AfC78dRLKh66j9D0Mgz+uT5L9MyPxiA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7421 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1753453497725116600 Content-Type: text/plain; charset="utf-8" Export functions required for SR-IOV support. Signed-off-by: Mykyta Poturai Reviewed-by: Teddy Astie --- xen/drivers/vpci/header.c | 8 ++++---- xen/include/xen/vpci.h | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index f33fb27bde..f947f652cd 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -733,8 +733,8 @@ static void cf_check rom_write( } } =20 -static int bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *b= ar, - unsigned int i) +int vpci_bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar, + unsigned int i) { char str[32]; =20 @@ -950,7 +950,7 @@ static int cf_check init_header(struct pci_dev *pdev) else bars[i].type =3D VPCI_BAR_MEM32; =20 - rc =3D bar_add_rangeset(pdev, &bars[i], i); + rc =3D vpci_bar_add_rangeset(pdev, &bars[i], i); if ( rc ) goto fail; =20 @@ -1009,7 +1009,7 @@ static int cf_check init_header(struct pci_dev *pdev) rom->type =3D VPCI_BAR_EMPTY; else { - rc =3D bar_add_rangeset(pdev, rom, num_bars); + rc =3D vpci_bar_add_rangeset(pdev, rom, num_bars); if ( rc ) goto fail; } diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 0f0f321023..06f7039f20 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -294,6 +294,8 @@ bool vpci_ecam_read(pci_sbdf_t sbdf, unsigned int reg, = unsigned int len, =20 /* Map/unmap the BARs of a vPCI device. */ int vpci_modify_bars(const struct pci_dev *pdev, uint16_t cmd, bool rom_on= ly); +int vpci_bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar, + unsigned int i); =20 #endif /* __XEN__ */ =20 --=20 2.34.1 From nobody Thu Oct 30 18:25:56 2025 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1753453511; cv=pass; d=zohomail.com; s=zohoarc; b=dKXnSpSWNDo8hi66q8vfUAeLcsntlqy1TEDpqcAVc+OBtmG8EcSz+s4w6usAoSi4ebCJaXljou7lGnJn69MF7eRrZ9oxws/Bpb1S+8U9PK4iXY+0pkuMjsiAUH2T5I6cK9BhaaoX/zPWSkpusVvIehHN8LlpHuh7s420JbcasbY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753453511; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=OotdfLHKZjhyPJlV+BjTo76JI2XRgyIEJ4WlkkxrWJE=; b=CcOe2SZbn6Yz1/Cb9Wfml/Noi27rZKI3g2OV6rhTFS4YgrHAk6vluwTaK4gl9NinrVNJpvmYGLvldv2BGPyEU3M764r+kyrMFW/59K5uh5Mhpnhm6MdJuS1ZWNj+GvvDbYq7uRc8YXLS2yBTOrJkY6kQO8li0dNeS3AI+dt/JBU= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1753453511655910.7284120611945; Fri, 25 Jul 2025 07:25:11 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1057934.1425656 (Exim 4.92) (envelope-from ) id 1ufJLo-0007sd-Vm; Fri, 25 Jul 2025 14:24:44 +0000 Received: by outflank-mailman (output) from mailman id 1057934.1425656; Fri, 25 Jul 2025 14:24:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLo-0007rM-Pl; Fri, 25 Jul 2025 14:24:44 +0000 Received: by outflank-mailman (input) for mailman id 1057934; Fri, 25 Jul 2025 14:24:43 +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 1ufJLn-0007Qu-N0 for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 14:24:43 +0000 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c200::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1acfad7a-6963-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 16:24:42 +0200 (CEST) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by PA4PR03MB7421.eurprd03.prod.outlook.com (2603:10a6:102:103::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.22; Fri, 25 Jul 2025 14:24:33 +0000 Received: from PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.8964.021; Fri, 25 Jul 2025 14:24:33 +0000 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: 1acfad7a-6963-11f0-a31e-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LKmHS4+cw9mEeRWGjkEH0hm+O9V7DS/w8j40DY7e2L5F2mq1a5YgqsGHATIu1HhJxlRTIHah/AGHkiMDkuSM/in5VOEoal7In/7t0YThFcr69Kf14Ay9cG0zeb1pd8Oer21AVCK329z7asnUtcvUlLVIlHHAbybV6s6Or66GIdLWhOIbeBEA+vZLqftYGR4JAMDS94eHl0UyEmihcl4JH4gr3MP+XGDqWyuBM3zgU2FbWW0dR+Bwsw9+QEhzYPAEMBxAjOznRsS9Vvy/NW19AmnK7hn4OeYnduy7G/eQlVq9S5qXv87Fh3tDj7eAZQ4oMCbCn7LWrnKSMUO8RUHasw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OotdfLHKZjhyPJlV+BjTo76JI2XRgyIEJ4WlkkxrWJE=; b=ijJNhM8bng1cqWgeVwEphl0sJ/YUNsj53Z5+vvwTtACIe5XZjx+t9kEc8qCeN9ZydabUymzoA2RzB4v+165+ty5vel4egtx+M3cPnRY+jZW1LsDWkxp2GJD+5vG2TY/Gh8HoPXigIGOn1sV23LuiPv/OuR/hUD12of8JsaOHsZbR4GxuuFNows+TtOtJXv44MHwjJvFxARP8D79n95eczrITU1qUhxgmj+BxR8V712YBI9FUzBoRPVk/5Jwb5aIV2B/1/4P/pW3rCcWf17o44NA08KW5e6iIem24bL4kZokHCP5S+4r4rfpRVaPCecMXxDRosdv9CnFJm0JJ65+tQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OotdfLHKZjhyPJlV+BjTo76JI2XRgyIEJ4WlkkxrWJE=; b=N7BL3FKstDkfPAft4uxUi0/OKp2UGSPixeynb9xYqtqL2pBTm4geI52qhwuQ010jT8XT/SMi+acNrRYd0gWQQPWCWpy6Zy52XkgVWVe2H1GTVg3PIyg1tGBVCbmQCdZ4SzZ8kA0LbyPQjkiyMucceXXRGeIzgky7jzSJnoi+Q421rfTnEr/UrKmwQ9T38M+DaDc95iK1uS+UoBmoknGJntoL6ErT5qnMz7JaQz5n7wr6p+DF4eppfiQpWquL7l+cAJRmPHcKx5dZMjbrijUo6TUoLucwc8R0nYv5djTTGvcSjc+vG9mrkfYM34VUW82p1RW7bXrgf3GXHpKifKQFrA== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Stewart Hildebrand , Oleksii Kurochko , Community Manager , Andrew Cooper , Anthony PERARD , Michal Orzel , Jan Beulich , Julien Grall , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= , Stefano Stabellini , Mykyta Poturai Subject: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0 Thread-Topic: [PATCH v1 4/6] vpci: add SR-IOV support for PVH Dom0 Thread-Index: AQHb/W/XkRTIlDBdSUyf2rny+l8q3w== Date: Fri, 25 Jul 2025 14:24:33 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB7421:EE_ x-ms-office365-filtering-correlation-id: 51f437bc-54b2-4140-d07b-08ddcb86f9de x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?BDaShWk5nCRLXUF91VWWrv0SWPDiZ5vAlp4b9V6ltHOQkCDgHpuYte+Q1Z?= =?iso-8859-1?Q?E7GJ4k6aGh8//1yMLwEx6+HlhHA8+4ccKxbCfRfNDRPu/d+medIbG6SxoT?= =?iso-8859-1?Q?c9s3t2mNw6GR9FxW+Lk+oiKs8eOpbUMQzWLcguQopCusXt5Aw+c+dO+bmA?= =?iso-8859-1?Q?rYd1lWlLJH5/Z+a7D9PnD1g9d0L3GhQ9odecx4eIgN17QthGMtO/0///lu?= =?iso-8859-1?Q?JHfRM0SPLJOz+zbkwYRiEMfSs+P6xUdBS+zoX6C5fbrqXB00ehrqIvWdQK?= =?iso-8859-1?Q?GwhIKIh9ooNqC6qjDk1woPlo7cMt3R/hviiEQqM+YIckhpDL81ryXErslA?= =?iso-8859-1?Q?NRM1+W6x5UByG2Z/8LyTamH++kcJrlW7FGYf18h6IwKMNjgcpczHWP+HxY?= =?iso-8859-1?Q?htgxLpRcJaTLW+SjbXUXfo7y938oWXsSAEKZtp6DNFBZgvPoQl9Tq87Am3?= =?iso-8859-1?Q?dBZWue1KOOvOx9CK4MVxziwtDwmuiTcx67xn74yaE/45XPhe+aR6h80LxU?= =?iso-8859-1?Q?Ll5xis/flm1yGVr0EmetXXQbmuURSlAXwCEgajkBoNc1cBeYV9vrFMT8vj?= =?iso-8859-1?Q?zVFlyniv3x9y+JOdiOzWBwB9vaemEmGlQDpdY1iWtzhVrah21WoClnTvBU?= =?iso-8859-1?Q?lVNa1WypPzL+e54mk0FqukB+CqNjAmI/mEE8+0oXONoqJWCTIF0NM4xbBO?= =?iso-8859-1?Q?GtiCfxIBTpSh8j2zuIcVkTI5ZZH+VvNabucJT8zRE2kZf0L2N1Zc9CV/+n?= =?iso-8859-1?Q?pMuTmCinEVwfmeqWk9pp77kfoOH5vtfVYuRa5qkPF7SfsczBEoIJ3f6yu3?= =?iso-8859-1?Q?/+kBIKU8rLege4FmBmQFrb759ZUNtrHuxvAfjenFvC1K7nqPRW1k8F0f3U?= =?iso-8859-1?Q?t0ZP7IOQwOcve6x2Y8l/rr0fQun0UOEvFPDFrdG4ttoo0iLu/JIS4hAnjE?= =?iso-8859-1?Q?xk3GE5TkA8fVaXG6Yu03wqTsPxxvN2rJLiLTUx84YO6Tuo3u2o9v89ClsG?= =?iso-8859-1?Q?1Ild90UyUCq8fvCZE7FbcvtS1eq8VsJkAALTdHpS0Jjg2RLM3GVUvuVzDz?= =?iso-8859-1?Q?yh3/abRtloeCujQcSNhReOT2AAppjgW0lcDhxh+3DWNmP9K3MZuE3sYTzF?= =?iso-8859-1?Q?FkEx1cTcHgim75jGZ7Tr+NYLQfxi50a/N8BhQ8aQVr+bAT0aRwsT4NxuQ7?= =?iso-8859-1?Q?3IIiEvlzUHDCVwo4Kmy8isMqH2XhrEcbMB+YFnDg/mq2Ap1ossEbhEYdns?= =?iso-8859-1?Q?Hxx/+Q+sByz0hy+jrBSLIW23oXRH0KJtAiXpdCIuigzmfV5Cllkovk07W/?= =?iso-8859-1?Q?d3TwvMIja3UOHqjkLmwiWp0zzKVULMVUOwFXatOanFR0KhKOVxp7cYYYOn?= =?iso-8859-1?Q?I6FSxzgkbg3gdqhAkEc8t7ld97OeQgd7q40xFuAEARxUAFajaHrjWka0Rb?= =?iso-8859-1?Q?HDbDRzxkc9tfZDhL/3f2al0FmflwX6IQ1Z0yJYS9Gd1ks4bzTk2YOGjvO7?= =?iso-8859-1?Q?s=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?/zPG9LLikny03nsLxVJHqjrYEqD33JW7CuXBZcEmk+v9dIKCXmQzDZXghE?= =?iso-8859-1?Q?27+N6rm6aUEX0Y2w5wqxNe0t8+yKa9cNqgzCJakG5UN4mD2Swj2fdR0WIY?= =?iso-8859-1?Q?FGAK66F+C5OKLw6JZ0ZDxtkWR8tjtp8F9glFI0lOTWlzxnZAGFVN4VBHGL?= =?iso-8859-1?Q?LeT0OPmIgs2ehy0JHzWsA4f5T1Hjpw9JrFDxBNqzW7yaZOskdCZE8LrxF/?= =?iso-8859-1?Q?x4VfpboYqV2xHpUFfSP04LUsR1D7paVk+6zS2zOB5jyRu5BLFOC9+uAnuZ?= =?iso-8859-1?Q?Mn4EVEUaYJPvqy8EYRWVlas/+/wD0dfzp1vqTW1I9YGBjzLDjvDafTWDwG?= =?iso-8859-1?Q?OMEnSK1uvgFc8zBqeeXzkjZMjePhGcvNL8dOziBRVxL4REFRlhtwOfTGX8?= =?iso-8859-1?Q?0Ayy0dM7sja2/7dQSDVooZIXensCEo/jDqmh3aCO+OzajHa1cpk2AGJRvr?= =?iso-8859-1?Q?vDe2zVuXHwUYjUEhQDXQhm5oJM0A+Vh1GtiNRpybGsXJpeV2+9XCzRui6d?= =?iso-8859-1?Q?AGqCJ72YEFftiW5SSuUFK+DtSm4QBLOliubhE5gHrZF6Zb4dkj2UU3iutd?= =?iso-8859-1?Q?L+JUOI+zxacf5KLyz0ofv9MunriHZfNe7KuRp3iSQzcLOx2t/mymMpvJow?= =?iso-8859-1?Q?eZlPfJJCRwj6p3CNz/2Tb9JhCEEIhnZd5wugIJO7JVO0TgnTY0Re4WKr5/?= =?iso-8859-1?Q?Croj3ijuqsj4vltjdT6vpHTDa4sCMLAf2hgADBjxkHZv5cew72EwW/LWeQ?= =?iso-8859-1?Q?0l/HUrGi9zvNLixiRQHfyvTiEJasIKp8lKg2e6dWrgTzAQJUw0Auhllv/Q?= =?iso-8859-1?Q?TMNZZcjc1kpbTu5iBPtksTvwqScXNMANPw3clowh5YOK5ZiYhA1cp7YIH9?= =?iso-8859-1?Q?+Jkrn20X2WO8+o+W4t/xatiu6IxPlz8sk3l3pAK2muW0yDhlNq9EZq/7LI?= =?iso-8859-1?Q?4OlPIPkWUWK89sydwCJY30BzEoDCghvYvvP0Bf01j77gbze8RrIpmIl6qo?= =?iso-8859-1?Q?SB9EDpL+OMl+eDj4kRK+a0AnIk/DgVOe3tP4ZQGyw4P72CdT/LjWncVQXj?= =?iso-8859-1?Q?acL3z6WTWacTqIHafyV2ZmCFjOcajD3pcOcm10OOUVEkcGgbo9D4axHk7O?= =?iso-8859-1?Q?YNYxwUNyLSEJDVxeLk+Qorb3coH6oMFoAnUJEFKAlYPP0JhkwOOG2qWSsa?= =?iso-8859-1?Q?09cxoogJLyWEweLBMo8ELm8CGrAkxFkEFLQwFevuxIqqjSzrc3sB75Q8RF?= =?iso-8859-1?Q?SIIswLo2uJ+3BOztPZGRzNXbNLRD9vBmPDrJeeFIe64f/5TiOo/a/piUHt?= =?iso-8859-1?Q?zw8EkxofGVeiwe+kab2jCt12lj5E6J6REezvO987fd+Cb8w4y9ZWzwESyt?= =?iso-8859-1?Q?LtBVjWFFc5b6B9uNJ6Gdkm0DI7QYpJCASBtN9wk5is0D7qaqVmTN90OCyX?= =?iso-8859-1?Q?XrgCiowvadWCy3/ujQ0sItTQ9FW/k2Hw52msY4JdzrPwwPG/hf8CQT1WSd?= =?iso-8859-1?Q?BvaP+9BzcRnpR35qFgo40+tP9L8p5tRMOZV+5Uz27v6b2ihAbgyl+ShUwt?= =?iso-8859-1?Q?r+S6PAcvwK8VMsqRxQ79InZgJA47krTyq8YfCnEaqaf+Zd9kwtf1OEQxO1?= =?iso-8859-1?Q?lWJQgFxkKHzjVcQ1z6j36keG5DQVNFMs3A/JD27LnBAw/IcVar4NDulQ?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51f437bc-54b2-4140-d07b-08ddcb86f9de X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2025 14:24:33.2222 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 39ChrFTBUdLD82ERlhlQOFdCbJAXJy01LNIyWpULl3AQMu2/skpre7V3J2NIFTjkEyxEqIZmkLhgDSJZXtNgCg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7421 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1753453513986116600 Content-Type: text/plain; charset="utf-8" From: Stewart Hildebrand This code is expected to only be used by privileged domains, unprivileged domains should not get access to the SR-IOV capability. Implement RW handlers for PCI_SRIOV_CTRL register to dynamically map/unmap VF BARS. Recalculate BAR sizes before mapping VFs to account for possible changes in the system page size register. Relies on dom0 to enable SR-IOV and PHYSDEVOP to inform Xen about addition/removal of VFs. Signed-off-by: Stewart Hildebrand Signed-off-by: Mykyta Poturai --- CHANGELOG.md | 3 +- SUPPORT.md | 2 - xen/drivers/vpci/Makefile | 2 +- xen/drivers/vpci/header.c | 3 + xen/drivers/vpci/sriov.c | 235 ++++++++++++++++++++++++++++++++++++++ xen/drivers/vpci/vpci.c | 1 + xen/include/xen/vpci.h | 7 +- 7 files changed, 247 insertions(+), 6 deletions(-) create mode 100644 xen/drivers/vpci/sriov.c diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f31ca08fe..7b0e8beb76 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,8 +23,7 @@ The format is based on [Keep a Changelog](https://keepach= angelog.com/en/1.0.0/) - On x86: - Option to attempt to fixup p2m page-faults on PVH dom0. - Resizable BARs is supported for PVH dom0. - - Support PCI passthrough for HVM domUs when dom0 is PVH (note SR-IOV - capability usage is not yet supported on PVH dom0). + - Support PCI passthrough for HVM domUs when dom0 is PVH. - Smoke tests for the FreeBSD Xen builds in Cirrus CI. =20 - On Arm: diff --git a/SUPPORT.md b/SUPPORT.md index 6a82a92189..830b598714 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -170,8 +170,6 @@ unexpected behavior or issues on some hardware. =20 At least the following features are missing on a PVH dom0: =20 - * PCI SR-IOV. - * Native NMI forwarding (nmi=3Ddom0 command line option). =20 * MCE handling. diff --git a/xen/drivers/vpci/Makefile b/xen/drivers/vpci/Makefile index a7c8a30a89..fe1e57b64d 100644 --- a/xen/drivers/vpci/Makefile +++ b/xen/drivers/vpci/Makefile @@ -1,2 +1,2 @@ -obj-y +=3D vpci.o header.o rebar.o +obj-y +=3D vpci.o header.o rebar.o sriov.o obj-$(CONFIG_HAS_PCI_MSI) +=3D msi.o msix.o diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index f947f652cd..0a840c6dcc 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -839,6 +839,9 @@ static int cf_check init_header(struct pci_dev *pdev) =20 ASSERT(rw_is_write_locked(&pdev->domain->pci_lock)); =20 + if ( pdev->info.is_virtfn ) + return 0; + switch ( pci_conf_read8(pdev->sbdf, PCI_HEADER_TYPE) & 0x7f ) { case PCI_HEADER_TYPE_NORMAL: diff --git a/xen/drivers/vpci/sriov.c b/xen/drivers/vpci/sriov.c new file mode 100644 index 0000000000..640430e3e9 --- /dev/null +++ b/xen/drivers/vpci/sriov.c @@ -0,0 +1,235 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Handlers for accesses to the SR-IOV capability structure. + * + * Copyright (C) 2018 Citrix Systems R&D + */ + +#include +#include + +static int vf_init_bars(const struct pci_dev *vf_pdev) +{ + unsigned int i, sriov_pos; + int vf_idx, rc; + const struct pci_dev *pf_pdev =3D vf_pdev->pf_pdev; + uint16_t offset, stride; + struct vpci_bar *bars =3D vf_pdev->vpci->header.bars; + struct vpci_bar *physfn_vf_bars =3D pf_pdev->vpci->sriov->vf_bars; + + sriov_pos =3D pci_find_ext_capability(pf_pdev->sbdf, PCI_EXT_CAP_ID_SR= IOV); + offset =3D pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_VF_OFF= SET); + stride =3D pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_VF_STR= IDE); + + vf_idx =3D vf_pdev->sbdf.sbdf; + vf_idx -=3D pf_pdev->sbdf.sbdf + offset; + if ( vf_idx < 0 ) + return -EINVAL; + if ( stride ) + { + if ( vf_idx % stride ) + return -EINVAL; + vf_idx /=3D stride; + } + + /* + * Set up BARs for this VF out of PF's VF BARs taking into account + * the index of the VF. + */ + for ( i =3D 0; i < PCI_SRIOV_NUM_BARS; i++ ) + { + bars[i].addr =3D physfn_vf_bars[i].addr + vf_idx * physfn_vf_bars[= i].size; + bars[i].guest_addr =3D bars[i].addr; + bars[i].size =3D physfn_vf_bars[i].size; + bars[i].type =3D physfn_vf_bars[i].type; + bars[i].prefetchable =3D physfn_vf_bars[i].prefetchable; + rc =3D vpci_bar_add_rangeset(vf_pdev, &bars[i], i); + if ( rc ) + return rc; + } + + return 0; +} + +static int map_vf(const struct pci_dev *vf_pdev, uint16_t cmd) +{ + int rc; + + ASSERT(rw_is_write_locked(&vf_pdev->domain->pci_lock)); + + rc =3D vf_init_bars(vf_pdev); + if ( rc ) + return rc; + + return vpci_modify_bars(vf_pdev, cmd, false); +} + +static int size_vf_bars(struct pci_dev *pf_pdev, unsigned int sriov_pos) +{ + /* + * NB: a non-const pci_dev of the PF is needed in order to update + * vf_rlen. + */ + struct vpci_bar *bars; + unsigned int i; + int rc =3D 0; + + ASSERT(rw_is_write_locked(&pf_pdev->domain->pci_lock)); + ASSERT(!pf_pdev->info.is_virtfn); + + if ( !pf_pdev->vpci->sriov ) + return -EINVAL; + + /* Read BARs for VFs out of PF's SR-IOV extended capability. */ + bars =3D pf_pdev->vpci->sriov->vf_bars; + /* Set the BARs addresses and size. */ + for ( i =3D 0; i < PCI_SRIOV_NUM_BARS; i +=3D rc ) + { + unsigned int idx =3D sriov_pos + PCI_SRIOV_BAR + i * 4; + uint32_t bar; + uint64_t addr, size; + + bar =3D pci_conf_read32(pf_pdev->sbdf, idx); + + rc =3D pci_size_mem_bar(pf_pdev->sbdf, idx, &addr, &size, + PCI_BAR_VF | + ((i =3D=3D PCI_SRIOV_NUM_BARS - 1) ? PCI_BAR= _LAST + : 0)); + + /* + * Update vf_rlen on the PF. According to the spec the size of + * the BARs can change if the system page size register is + * modified, so always update rlen when enabling VFs. + */ + pf_pdev->physfn.vf_rlen[i] =3D size; + + if ( !size ) + { + bars[i].type =3D VPCI_BAR_EMPTY; + continue; + } + + bars[i].addr =3D addr; + bars[i].guest_addr =3D addr; + bars[i].size =3D size; + bars[i].prefetchable =3D bar & PCI_BASE_ADDRESS_MEM_PREFETCH; + + switch ( rc ) + { + case 1: + bars[i].type =3D VPCI_BAR_MEM32; + break; + + case 2: + bars[i].type =3D VPCI_BAR_MEM64_LO; + bars[i + 1].type =3D VPCI_BAR_MEM64_HI; + break; + + default: + ASSERT_UNREACHABLE(); + } + } + + rc =3D rc > 0 ? 0 : rc; + + return rc; +} + +static void cf_check control_write(const struct pci_dev *pdev, unsigned in= t reg, + uint32_t val, void *data) +{ + unsigned int sriov_pos =3D reg - PCI_SRIOV_CTRL; + uint16_t control =3D pci_conf_read16(pdev->sbdf, reg); + bool mem_enabled =3D control & PCI_SRIOV_CTRL_MSE; + bool new_mem_enabled =3D val & PCI_SRIOV_CTRL_MSE; + + ASSERT(!pdev->info.is_virtfn); + + if ( new_mem_enabled !=3D mem_enabled ) + { + struct pci_dev *vf_pdev; + if ( new_mem_enabled ) + { + /* FIXME casting away const-ness to modify vf_rlen */ + size_vf_bars((struct pci_dev *)pdev, sriov_pos); + + list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list) + map_vf(vf_pdev, PCI_COMMAND_MEMORY); + } + else + { + list_for_each_entry(vf_pdev, &pdev->vf_list, vf_list) + map_vf(vf_pdev, 0); + } + } + + pci_conf_write16(pdev->sbdf, reg, val); +} + +static int vf_init_header(struct pci_dev *vf_pdev) +{ + const struct pci_dev *pf_pdev; + unsigned int sriov_pos; + int rc =3D 0; + uint16_t ctrl; + + ASSERT(rw_is_write_locked(&vf_pdev->domain->pci_lock)); + + if ( !vf_pdev->info.is_virtfn ) + return 0; + + pf_pdev =3D vf_pdev->pf_pdev; + ASSERT(pf_pdev); + + sriov_pos =3D pci_find_ext_capability(pf_pdev->sbdf, PCI_EXT_CAP_ID_SR= IOV); + ctrl =3D pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_CTRL); + + if ( (pf_pdev->domain =3D=3D vf_pdev->domain) && (ctrl & PCI_SRIOV_CTR= L_MSE) ) + { + rc =3D map_vf(vf_pdev, PCI_COMMAND_MEMORY); + if ( rc ) + return rc; + } + + return rc; +} + +static int init_sriov(struct pci_dev *pdev) +{ + unsigned int pos; + + if ( pdev->info.is_virtfn ) + return vf_init_header(pdev); + + pos =3D pci_find_ext_capability(pdev->sbdf, PCI_EXT_CAP_ID_SRIOV); + + if ( !pos ) + return 0; + + if ( !is_hardware_domain(pdev->domain) ) + { + printk(XENLOG_ERR + "%pp: SR-IOV configuration unsupported for unpriv %pd\n", + &pdev->sbdf, pdev->domain); + return 0; + } + + pdev->vpci->sriov =3D xzalloc(struct vpci_sriov); + if ( !pdev->vpci->sriov ) + return -ENOMEM; + + return vpci_add_register(pdev->vpci, vpci_hw_read16, control_write, + pos + PCI_SRIOV_CTRL, 2, NULL); +} + +REGISTER_VPCI_INIT(init_sriov, VPCI_PRIORITY_LOW); + +/* + * Local variables: + * mode: C + * c-file-style: "BSD" + * c-basic-offset: 4 + * tab-width: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/xen/drivers/vpci/vpci.c b/xen/drivers/vpci/vpci.c index 09988f04c2..7af6651831 100644 --- a/xen/drivers/vpci/vpci.c +++ b/xen/drivers/vpci/vpci.c @@ -120,6 +120,7 @@ void vpci_deassign_device(struct pci_dev *pdev) for ( i =3D 0; i < ARRAY_SIZE(pdev->vpci->header.bars); i++ ) rangeset_destroy(pdev->vpci->header.bars[i].mem); =20 + xfree(pdev->vpci->sriov); xfree(pdev->vpci->msix); xfree(pdev->vpci->msi); xfree(pdev->vpci); diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 06f7039f20..9e8dcab17e 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -138,7 +138,6 @@ struct vpci { * upon to know whether BARs are mapped into the guest p2m. */ bool bars_mapped : 1; - /* FIXME: currently there's no support for SR-IOV. */ } header; =20 /* MSI data. */ @@ -192,6 +191,12 @@ struct vpci { struct vpci_arch_msix_entry arch; } entries[]; } *msix; + + struct vpci_sriov { + /* PF only */ + struct vpci_bar vf_bars[PCI_SRIOV_NUM_BARS]; + } *sriov; + #ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT /* Guest SBDF of the device. */ #define INVALID_GUEST_SBDF ((pci_sbdf_t){ .sbdf =3D ~0U }) --=20 2.34.1 From nobody Thu Oct 30 18:25:56 2025 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1753453502; cv=pass; d=zohomail.com; s=zohoarc; b=TSjGCy10Pyhl7SUoo7cyUtcOZr+kEmPwUu4Ye8qfyz2/S65VBnNWfioxNIfjy7UTfv71WmkWhzZKtITMXvM9qOp1EFNThTtLJQk6IcUJvw5Jtbbed49j8pRMpwScKTvboaZM7qj2lohl6PT1FR2I14ExOisis34Lk3Ivv3ElcHI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753453502; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mXWTfPytJbqMe3km4Un0ecOad4IAifHy9GqTYt3gIOY=; b=V9gw8WI0JMkmNs3ZCkiJzBvh1Pro1t+IuRwhLB35hvCcoWZQeIQ8QnkA7Z4bPcOEPjO0GvUL4CWFxmTp8U7ZPQ6YqDeSixmmbFnprZh1Nm9Rom5PF7KL6vH1/gtiA8eaufVikeoxVLzKpLsGZcBZsVs3e9Im2gZxWsAEEDDo0Kg= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1753453502933417.65753842050026; Fri, 25 Jul 2025 07:25:02 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1057932.1425645 (Exim 4.92) (envelope-from ) id 1ufJLo-0007iT-4p; Fri, 25 Jul 2025 14:24:44 +0000 Received: by outflank-mailman (output) from mailman id 1057932.1425645; Fri, 25 Jul 2025 14:24:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLo-0007iM-0S; Fri, 25 Jul 2025 14:24:44 +0000 Received: by outflank-mailman (input) for mailman id 1057932; Fri, 25 Jul 2025 14:24:42 +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 1ufJLm-0007Qu-2L for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 14:24:42 +0000 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c200::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1a1c21c2-6963-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 16:24:41 +0200 (CEST) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by PA4PR03MB7421.eurprd03.prod.outlook.com (2603:10a6:102:103::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.22; Fri, 25 Jul 2025 14:24:33 +0000 Received: from PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.8964.021; Fri, 25 Jul 2025 14:24:33 +0000 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: 1a1c21c2-6963-11f0-a31e-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M7X57ZgcN2q529q3LsyY+2FIaqaAYR49r9ibbldZuQtjnyL6xRnsUj3HP4Bmf+VGuQf/bWeUsxn7KcxmwglGL5hhGYKMpC7lUyiLbwELMWeqlfvmWWtZcxjQkhw1sSaHR8KyVRO7aqLEgaS/JDIHeG+Uug1erDrLfON64dOkQTQcB2YSURw+B+87AmFduZEjt08kOjUHR7MbxsQi4+LOOghgm2Ax7hff1wIu3dASCthbeR/TbqhOSrosXzOt2z4kLPmIT2dScNlX1FmMzQBrzwNi1DDMW3M+JNY1DVqYPArcpobwfwKjE1CmHOoIVkK67qjHQlcYSSHVcvc3oKh+8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mXWTfPytJbqMe3km4Un0ecOad4IAifHy9GqTYt3gIOY=; b=cJXH2kBGoNeaOW+zlV125VjCW4dT1AsPJQctwW0ZUeoKfR2oMI94NeINZuEZOf3KZxaI7PH5dcF+QwJvKl01ZF8MIC4WZBu4R61IZ+XgcVQ8yfq7NZDS+71XyV6FHtxU5XwHv4KmlN3kjrO2ZXaJ+JavSuZiuXaXJ48wMPmpIpKknqHwBKRKWqx39mPJ4F5BKbrGxJIyRd4yBKym0fR1lUlhncZRg2dUtWRzXUzxcr0yeluEYAa46qxDhsG2n0pSuS0kaO1+7xQT6OQbJPasiOWVjKRYHXgbbtC2BJe0LSzb2Oke8UjqViCpQSxHWdFHBv2UsT/AJhTfpKXc5eQoXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mXWTfPytJbqMe3km4Un0ecOad4IAifHy9GqTYt3gIOY=; b=d74v+oovQam+wEvgF3j9xevpVQH8Ow2cgijgBmkgBIZs3oCNziQNQVvEs65xHy2vzvDC65VvoO0V6JotHKkmLhpGeLhdjumMjx4prkfG6aHDSVM247o/9PETnyhVZ06O+05AakYjn7TElrox8mgmROTmUNokGlUd6Kz+1hTh8JYQ2ea8SSeL0cmXbuwb0qFOq/oTOAXurcoaBDPCpP35FB1g3rGNLVK1RuBYcZnBEBJBYoFsKto6Quq2Jc1aku5YQxYDZMrhYyLa0HuynIlIgN9mujehavWifzhJboTkLeQQ7khDMbEH7QFRsG4PSh48N2leaNQ3/jwpy5OAtUpxJg== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Stewart Hildebrand , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= , Mykyta Poturai Subject: [PATCH v1 5/6] vpci: export vpci_init_capability_list() Thread-Topic: [PATCH v1 5/6] vpci: export vpci_init_capability_list() Thread-Index: AQHb/W/Xl+AUyzxiPU+tyfGoelM0Fw== Date: Fri, 25 Jul 2025 14:24:33 +0000 Message-ID: <288f53231e6328a840d9b1ce3d6b261a0c181942.1753450965.git.mykyta_poturai@epam.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB7421:EE_ x-ms-office365-filtering-correlation-id: af0d0ddb-640a-4577-06a8-08ddcb86f9fe x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?m2xv6lktYmdIruVXJehh/+r9WGKc3jaAKzfI4wnfAXgCYZs7pWqTggbziY?= =?iso-8859-1?Q?cXO4WIbm5QRuuSxA7In2C7GyjQ7x+oZnuwfOV3YXBKhzxzhsLaUXT4OD2Q?= =?iso-8859-1?Q?zXrMCy/LaUNxTcPJdn3M2L+maTLyw/xUDU7SUAmxZS3dQVmjVSBtI61+EN?= =?iso-8859-1?Q?hLK+bFfeSNuiidrsthVidFOm4OJ8vfnqQ6SS+zL5C5bajP5O+Z3Svz+k2v?= =?iso-8859-1?Q?CdM97mgrPwBtD+ImLqH/OlskrwvKn5/kvCsGzMWIrLJ2mVvVHjpB5uFUys?= =?iso-8859-1?Q?NLwSrrURLTXCCBF/SZV0fxz04L2cTgIX4cp483q9cpvgE2dKAQZrZhMWgc?= =?iso-8859-1?Q?eS6uf6wCo23lpeQpAm9DEar97NbCUZ2Huzbwzn0bYTB9HO2eTNLoCbKM20?= =?iso-8859-1?Q?P4vfhtA2M/CX5NEv1vatJhGvevJIdS6xIoiJBQqeV+iYxadofJcR0BbCud?= =?iso-8859-1?Q?tOLk42Cc1jGqBlFfVOUB5aep7vjNZXzGkletVwYlh2l+DVl4ikXAExQQQG?= =?iso-8859-1?Q?uegY2xvOysUrmOXPW/hE6F0L22t3iW8JOM6avN8NYO0aLRk6rlUxgF4nvD?= =?iso-8859-1?Q?INjT7P5skNi4qMK1sCLnRcNnNRSgZNWrOPV4PeYgAjmzClF8TbWaoztXgr?= =?iso-8859-1?Q?O7aSgay1bVSeZnNHrLlRRNOKYjhWSLM/afcNBad6hjldcKfqb5NAW4IVKX?= =?iso-8859-1?Q?DXPd5LDeF1NCqZHmfAA4iAPFC6RlDLW9Z3P5NjXNjv7fed1Gw2hcYiby3m?= =?iso-8859-1?Q?ZWWHdd0rwnKkdZd5rXsT0OmSUiVcooL7ipcO0VfkEtDQB7Bux2OQChUgCo?= =?iso-8859-1?Q?wu9/WCpA6w5Sqkkh/DXEWmYinix7JS5UtcNR6EN1sNRBxJt0LPFkxJjJOJ?= =?iso-8859-1?Q?fkT1KBtQvdip3zlEShrGFZFQNj76pyE40U+5BTYWi7oXleYYhDWsjgF31C?= =?iso-8859-1?Q?bFCjUxDMOobGOkklTplfmAB9nLxQ8fNf2zRf5gsyGdOKoTCU9A9diRuM7Y?= =?iso-8859-1?Q?kY0r3STQ48N5sMx0IA6xXhtUBCrt4BHIEhglE0miFs4PWL48wVS5p0Ycdh?= =?iso-8859-1?Q?qgpIspzEuiaTNGi/FNCMjQndCNm+rYVWh3NNxu4YBs9vXD9gA/1dsnUfkl?= =?iso-8859-1?Q?r3JGxG0nJm+4X3eaQ5qk0sMI2TKsW4Y8XUs6nVxmel6BnV7vZbldjjzgUt?= =?iso-8859-1?Q?bvRe2fkYQPYEO8990yDUSd9a3pyXV69nS6ifpAB1wcq41YhEWf6zhFU4xS?= =?iso-8859-1?Q?AKcbQPKHW6/AnBko3avQZW+GhCqJUFvu0ZORtHcLMFhsA7+xW6dJ6GsHuI?= =?iso-8859-1?Q?yBFS4vvQrKfdE4pHTNnlIq8lqRIbwYntzlt+dYGIfdveWBQ3KPImANIGZI?= =?iso-8859-1?Q?Nzq2HUf1PuMDCFqbAZ6rk3yGwc56670RPI11PKKgNvZkM14qFa2HWOR+Zf?= =?iso-8859-1?Q?Qo/OQHXMw4E3ntFqQkR3pLt8wfYkb011j0bQPqmEL8LyuSW3gGWNHCluDn?= =?iso-8859-1?Q?5Y3tQwrgY1vK7y6wI0e4Se36CwS/eyxO+aBOKJju6SnA=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?wb9+nMf/A07lW4G9nCxtlkmOyoIcjEwj09AEhqaVs5tArHvGK5ltHRCeUe?= =?iso-8859-1?Q?b12yUXruOYiZ4RaG/G2mLMhx6w4idZ9R/smdKEpYkwC1oS/YN7DqJ63205?= =?iso-8859-1?Q?x4ocf5AJtD9ymdcpHYKbmc7JHEtHAnimmMfiBJlgQfXN5IqltCgAU5WytV?= =?iso-8859-1?Q?u/+y5PBQptg4IOS+NRnkAi2qoeThHMQUlDOrKJk57RlhxFP7szwgGxSmeD?= =?iso-8859-1?Q?wDETUIfQ7jwcnYK3g+7smwXIkGBwL/wgMM4EgR5HvlTKRhNgFuUuHp2QWl?= =?iso-8859-1?Q?q+G4YHIeGFgSC4cbiUejHtcUXM99blucwVtumbsLp6MAjwdq+RiY4ZGLBG?= =?iso-8859-1?Q?zmm9qi3KAGOZM5y9tgIUF37YodzMAJd+bv3Q5t9kn6sw1i94Wj+6Zw35w5?= =?iso-8859-1?Q?57Z6us1WdNcAkgHscQh7sy/skooIMrwF/4LBQq7EcwMbd03DXKjkPDWx67?= =?iso-8859-1?Q?W8f+sVOhZboTeGYjQUkqLj7i+iZ3glriXFFRlyxCtvps+9AZqZfWbiOpsh?= =?iso-8859-1?Q?Su08NAXxYx5aJvydTuqZA+9nkm3IoF75M+0V3eqL5ldSKPe7N6QOVvk4b6?= =?iso-8859-1?Q?n4S8kPotSDAR5nyzKzAlWa5BAKS4vVA5I7h92lLftlB0PfersdNgkADEWx?= =?iso-8859-1?Q?4REYCgTDm3+GdXpY7ni4FzBdN9xnxIi5CWXbTSQVhULR2R8N7oOk6081Z4?= =?iso-8859-1?Q?j8h8DpuZp0I7bJOaPcknN81pgMBmZ83SULpVjOlKYFdu8sV1hlJ4KHMImM?= =?iso-8859-1?Q?PZl2N5TsgzGjW7jDdszvoXrXf71UJ7DHB5SjRM0s8sG6zpFPtczQ820W1P?= =?iso-8859-1?Q?jV++dW2hgWRFkaU3u9JLrVd5b3u6u+Tw7NT0gmCziTp12qA/Wwnvw+Spen?= =?iso-8859-1?Q?WJ4NMPZ2R7kfosDjK3JXleIKNhG5FgZgsRU/nRPasCvS3TOzl5vJf1vYsm?= =?iso-8859-1?Q?RYUDB4j3hR/nXhjHHSTE6VXKpQZ5bfekhQklorW+HMz4CbfXrdm/qJt2h8?= =?iso-8859-1?Q?8ZYH5X03aAMo/fxnPJSSXtndBf3IdJVaJvkxvPmK2cSPRyOlA8QAWfKfJE?= =?iso-8859-1?Q?XdqnckFYOGaWwYPCz4fu3Efmc+g5/ddXz4O/ttj7keCks5AxppcnDHySgy?= =?iso-8859-1?Q?T9FSsxTLrBKnj49TnIOT5GDC/gcLwFB/NaxOy8n0yfIDOtP1SZrlX8imB8?= =?iso-8859-1?Q?sY7AwCgGncVJfZ6h1qgIvvikPLlJ8KwvQPXy6bUbHGtfLhvjItxX25sUuZ?= =?iso-8859-1?Q?HqZPgAO7YRC587rslTJKdr+b0ZLhCdJgELXlTfmr1Nj/WNwVdNSPl/H4Xk?= =?iso-8859-1?Q?IEWsUEgS63txiCu3WkyCnrI5Vlgz/DfvPz/5ZcsieBnLdh59xrkOCnANiN?= =?iso-8859-1?Q?O9GqsobhOGNDvpV02U8Rsoxges3alyOpZ5JXJ2BKgUZ1Ds/qoGK9B776SI?= =?iso-8859-1?Q?fAu3Ohp0a7ohoZMNPjEfmb+GdJTSUQbkWVdurmNjsj/i3XyWnz/6UPrdgO?= =?iso-8859-1?Q?bKYjvSrBR+zU/6LgCXX6/70TExHFBxa/v5403FLq3I9yO8npSt5KHjhFLZ?= =?iso-8859-1?Q?m05gYbTAoyC5ayl/Gt2K4DM1B9WDVOrEPc7s8meFHQ2vUliLp7hvlh2kko?= =?iso-8859-1?Q?/fSLPrrNxcdS6miQED0dTD1692zBOYtC2j9gCs3I6JjJSigIruib6R8Q?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af0d0ddb-640a-4577-06a8-08ddcb86f9fe X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2025 14:24:33.5394 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 1j8G02Yd31cH2Y2yMKMq/2cx0BUG72o5C5acZUdu5k+Jg0rm+opGPFy8aK538XbXy1mjHrgE+KCdJdIoTWTrrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7421 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1753453503543116600 Content-Type: text/plain; charset="utf-8" From: Stewart Hildebrand Export functions required for SR-IOV support. Signed-off-by: Stewart Hildebrand Signed-off-by: Mykyta Poturai --- xen/drivers/vpci/header.c | 2 +- xen/include/xen/vpci.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/xen/drivers/vpci/header.c b/xen/drivers/vpci/header.c index 0a840c6dcc..ae44d6a73c 100644 --- a/xen/drivers/vpci/header.c +++ b/xen/drivers/vpci/header.c @@ -745,7 +745,7 @@ int vpci_bar_add_rangeset(const struct pci_dev *pdev, s= truct vpci_bar *bar, return !bar->mem ? -ENOMEM : 0; } =20 -static int vpci_init_capability_list(struct pci_dev *pdev) +int vpci_init_capability_list(struct pci_dev *pdev) { int rc; bool mask_cap_list =3D false; diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h index 9e8dcab17e..b8fa93575b 100644 --- a/xen/include/xen/vpci.h +++ b/xen/include/xen/vpci.h @@ -302,6 +302,8 @@ int vpci_modify_bars(const struct pci_dev *pdev, uint16= _t cmd, bool rom_only); int vpci_bar_add_rangeset(const struct pci_dev *pdev, struct vpci_bar *bar, unsigned int i); =20 +int vpci_init_capability_list(struct pci_dev *pdev); + #endif /* __XEN__ */ =20 #else /* !CONFIG_HAS_VPCI */ --=20 2.34.1 From nobody Thu Oct 30 18:25:56 2025 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass(p=quarantine dis=none) header.from=epam.com ARC-Seal: i=2; a=rsa-sha256; t=1753453498; cv=pass; d=zohomail.com; s=zohoarc; b=LdwfOBhj1PLY/ic1aHJqQtuAzJVVxJJDLcv+7IV+XWwLTkTIwtP0Tk0hyemlOrbo/dQcKXieolWHbTJTgQPnXLuysmQ61dIU4Plts0noJ0+dZJQpyYZmzcMqEva+5Kv6li2JZnkAwIs5gXw754P8+O9GJ/aiXi20Jb/H+9NuMD8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1753453498; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Sj5kXRw1TCTZlSidkbZC0El8FA/Le8iXT/bf3wJXn+M=; b=h/LwXYshtoSHQQh6PAuZkcoTsPTXKOECetQRaP3W+55SSCLh8A/r999EjTpO8TT3fSHpc2rfS92B19OoiAyY0ShrctrGzEbcq0vydPsdi741E5v91jsiXuXaR6MNzi2VtDEfj9DWDRxeHU0M40f8xOv0uRZzLTyPdyOahg8e72c= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=epam.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 175345349870641.90418939726294; Fri, 25 Jul 2025 07:24:58 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1057933.1425649 (Exim 4.92) (envelope-from ) id 1ufJLo-0007lH-DI; Fri, 25 Jul 2025 14:24:44 +0000 Received: by outflank-mailman (output) from mailman id 1057933.1425649; Fri, 25 Jul 2025 14:24:44 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1ufJLo-0007kS-8V; Fri, 25 Jul 2025 14:24:44 +0000 Received: by outflank-mailman (input) for mailman id 1057933; Fri, 25 Jul 2025 14:24:42 +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 1ufJLm-0007Qu-Mu for xen-devel@lists.xenproject.org; Fri, 25 Jul 2025 14:24:42 +0000 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [2a01:111:f403:c200::1]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 1a7afbed-6963-11f0-a31e-13f23c93f187; Fri, 25 Jul 2025 16:24:41 +0200 (CEST) Received: from PAVPR03MB10102.eurprd03.prod.outlook.com (2603:10a6:102:30d::12) by PA4PR03MB7421.eurprd03.prod.outlook.com (2603:10a6:102:103::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.22; Fri, 25 Jul 2025 14:24:33 +0000 Received: from PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb]) by PAVPR03MB10102.eurprd03.prod.outlook.com ([fe80::b8c6:f37a:987a:beb%4]) with mapi id 15.20.8964.021; Fri, 25 Jul 2025 14:24:33 +0000 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: 1a7afbed-6963-11f0-a31e-13f23c93f187 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rWL/J1U7G/wG8oE197x2eAirKsWWKMwGyEr/jzqT32Rw40Gn4u/0ZRWSfoH3VJCAQO+IL+IYoS1CzuHz6IGJq4NeU37fM/7Mba9FrsOkcx/U16Lys1v2IJLQSL4ZRRrRsWwgC2XZ5OHtRUmGfr3Zx6mVNLFYcgIc+ODykEYh6gD7gyWCoNyEzm3K8NZaqRiWFX811ooeYNZdrSVs7sVyTHhfsovTI/BzbpCfOuXHY5rhC0UqJ5BVaSMqb72UAXFUmxsPSv/P188iIJjpqIjjH0jynkAYJVj0B8iA0FqK+5t8pM65TRQMcYOAeGlRixNwJa2I6Eu38BQ0OMyyVk6iYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Sj5kXRw1TCTZlSidkbZC0El8FA/Le8iXT/bf3wJXn+M=; b=ueoNGeNpirNQBKlxoJEyk6zK4RlC0WKzB5la8+BYE5pVdx6Cm3tlpdoqhGSM7tEoTlh1Xd0+lstqSIUbQU28WHlFBBr47al0sy34xuGCwMnxLGUR+f1JaT1a7FCtP4MhmjH7DWaTjtPVaXc5qkOyVBR8XCiOsEgQUkiVCIZQgeVIshP+WtnLLDHjkWOVJT+VPUhoAMNFkXR3kKIC3f8xR1RhMn3+ADQND/+U+QBixfADuTJRg3oAKCOEMUqCJmb4d6det+6M0jcdtLyiJvzH2pr84QhXaCBqZZfviXEPs8McaCQS9nNQahFRXOn7xj5Rj1PoNzFBt1H+Tom+1oCDbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=epam.com; dmarc=pass action=none header.from=epam.com; dkim=pass header.d=epam.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=epam.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Sj5kXRw1TCTZlSidkbZC0El8FA/Le8iXT/bf3wJXn+M=; b=EeSohXefztVFeR6J3tF6KZEEIffTAEo5jMLjyus84SXrJXNV7v1nSzzZ3YFMd+QkkjXWAo3jZpHnM6ighqM0+FoVQOuob0TVhqZXGXcVZx3Pras8G79PxdlIQGWE1znEZOn/Y1vhLvUm6BWitEUG5snmKmx1J08zqfCLNBT9/dhPlPZmGU5I9Ep3AAEWIUur5V5JE8R+P/4y0CSQdIUnD3ooHV17OwhA/0yA+/nDiSnUz+CKyQr5nOESxK9x7uNFQgZinz0wmYcf4Z9cqmQnnoU/r7xROFVt5lc3rsYkuHdmRGRJeTz3XXa6h2d1ZpqFJYJcKWj1HubZaOk0GYwKrg== From: Mykyta Poturai To: "xen-devel@lists.xenproject.org" CC: Stewart Hildebrand , =?iso-8859-1?Q?Roger_Pau_Monn=E9?= , Mykyta Poturai Subject: [PATCH v1 6/6] vpci: add SR-IOV support for DomUs Thread-Topic: [PATCH v1 6/6] vpci: add SR-IOV support for DomUs Thread-Index: AQHb/W/XNN5FWox6skmSZZwtQ8vAvw== Date: Fri, 25 Jul 2025 14:24:33 +0000 Message-ID: <24ecd4b4877f82304e5fe5a4a6c524cc263c7756.1753450965.git.mykyta_poturai@epam.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=epam.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR03MB10102:EE_|PA4PR03MB7421:EE_ x-ms-office365-filtering-correlation-id: b989b9a5-78e4-43d7-0cb7-08ddcb86fa20 x-ld-processed: b41b72d0-4e9f-4c26-8a69-f949f367c91d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230040|1800799024|376014|366016|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?Q?yMzKsxijv7h3xII4byfatSFRRVkXiG4c09bSDK95CHnmh/nT1LyrDV/6Tu?= =?iso-8859-1?Q?aMN0jpsMZIhmnU5CKQI1GvyqC+X9YjakfRbcjuWCwNV4QwhlWmA+K2RjLi?= =?iso-8859-1?Q?VNUuywpYUdCdF12iO5LSDpxvjvZ5Lj833ngMx3xbCX5weFo1xjBQNOQgH0?= =?iso-8859-1?Q?x/rV+dXgZcerFtZmsGDzJrdcHIB6Wv3QGXRJ5h2aTQFSKdaMvqMy2yc3xb?= =?iso-8859-1?Q?O0IhjEsFEh3CYEaMMSAb0e4iobSYX4wv51H5K+J5zulw2doW1azlYoilgw?= =?iso-8859-1?Q?Re/rnorozhPr1Gn8yCU3/srQ0+wQ4Gog8ohjPiZ+ujrQxGXLwUfglzyTaj?= =?iso-8859-1?Q?6ynfCLgFD20VKKQfBqaQ6sCfdNSQlA0akxXe8PBevsbZbCCjFlS22gZwo0?= =?iso-8859-1?Q?GcAuZal6gfq3ilHXcwVJrDVBGlwkMDt23LJnffkmx9x9MmKxkwxEL8Nozw?= =?iso-8859-1?Q?Ujmue1mY5FoWIkzcrfjchw4gzsu4xRFG8/PiEaWL+L9BBDLmviJ1rdIaX3?= =?iso-8859-1?Q?nemZol+S+8kj5MqZvT4+Ord6vOWUKnm11jS1DFzSlucEW26Tlf8vAfwHE9?= =?iso-8859-1?Q?P61AxJEMm9L1CgQFmHtdltKK7HBhrse0/DU5V+tGHPBrQUMSEVlArAzU9t?= =?iso-8859-1?Q?ndOMdtBBg4wphA0jzKfACH70rt9Wru8CCq9J6djXr/LjjrxcSVmAGnFy/H?= =?iso-8859-1?Q?8Ts2E33Hyx/exIDntaKEHYmIJanPmG2IaSl4y7NnJbV2TEZgZ0P7DoVWac?= =?iso-8859-1?Q?KKz+zEBkvh4GE1pFdKHBgCywAUBT3rWeJJex3ZPGMu5ErXPiL3rKX0iS29?= =?iso-8859-1?Q?bGxyomqwUwJYm9jZ/ypMELJ+RgdgMZnvpm2Gi3HNWAqvObi8vTnu+KMUAh?= =?iso-8859-1?Q?7adPjdZ+ak3Ki2I/OoG5IxAeGNwFqKfqhuhfibFBAPW/CiGyGB6cIAEF2Z?= =?iso-8859-1?Q?I7qQ5nMputjZI0O1xidkJYVzUiJ4N11ozrUyX40BT5EWvSjRvbKjfaCKwS?= =?iso-8859-1?Q?J9adNemLfiE6fUu7Yc8lFtb0zPYz1FrWKBf+0qXFDSzJAGpGx68OJDQNhR?= =?iso-8859-1?Q?Hj9nlsTdubErjsOJPA1QnX3v0GrePNLF7FI8adlj5Glu6ebo58ncNNwQoy?= =?iso-8859-1?Q?VqqZ58Kua4uzxMB0ZsJqKxjPUwAACcLJ95cxoi0YaoVPXG0zYXFS3ZxtuH?= =?iso-8859-1?Q?+WcdUckySW24XTnpRwendKJMtRGsc15RuDa1+tf1DtHnwufIdR4yNiWRiP?= =?iso-8859-1?Q?DjPB2UA06+fi4wJhui+ufZY9MpxzZAB5YhX3zooRP2b0hzWEjUTzpbkwFE?= =?iso-8859-1?Q?OhQPqCP9sU2YFrUQEuwWJLtRnrtSkHkuFk4dFbb0YzOdrQP7GgPRid40IW?= =?iso-8859-1?Q?XxepcNwgzP6N3z+BdV1QLYnEZPtJQARZNWh0HosmdbzS3KuB6RgOMlsQ4m?= =?iso-8859-1?Q?o9zeLsUuNpmKXVFvNqoq3EDPr/fN0iifw8vKjQcVfN2lRXxv22wdLHifSx?= =?iso-8859-1?Q?lHSiqMoVI+ney8NZuSe5hHKWD1EqPY0R3VKUFV9S39nw=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAVPR03MB10102.eurprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(38070700018);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?eQaFMaVQIx1iX8sYxoa/VifGgey4SjqfsAN4jBMCKI++H1xYyKoKopmRcz?= =?iso-8859-1?Q?z4vR/LsJa9ChmmlrSOigBjroyt/MiF4cCA4kF+tZUCZ34/2uxxEXiaDrjh?= =?iso-8859-1?Q?W4j5ASGXGst8wUS7HsqoI0xHQb06I2zAa2Vsps0lEd5sRuTV+0G7y1XwTi?= =?iso-8859-1?Q?exvxOwve4DLBTLNjmav4FHTUsbN25FPuPp8n34m+YoNiRPuXYX5wWsoG7O?= =?iso-8859-1?Q?usF3h+kWVV6WmNWseEjagKCBKZgBacv9L72GFg4bm5VrDL9snrwM5YwC/E?= =?iso-8859-1?Q?YXVLoSAMM3br39bpWa3woC425uKaKaqQr+GUgNLcvYMLs0VmvIrs7OLCkO?= =?iso-8859-1?Q?kx9YwcbloBgkLJxEkVIf+YYGNwpz+8dPzibjfFuoWDHw/pcWkFtda+2a+u?= =?iso-8859-1?Q?5xjTaW0ua7PMNUI3/3TvyoJjyuyGg25wmNwuDPOTQoL9MNIzW67RYFvepx?= =?iso-8859-1?Q?AEakJT4tHPAhQ/7bcwIaf1LbOCq1tQ/4yPqa5AsX0i0De7Mxc69atEftfB?= =?iso-8859-1?Q?H4x6s5IfhvN2FFXCHM2nT1pu/q4RHJ1jlmz20Vf2LMm9SNA7WcwqzpK3gK?= =?iso-8859-1?Q?yesHpseunzoqULCy8XQ6X0L0YK7nBFcHQEH7coPdK6uGrLrBDFRsrAkR1b?= =?iso-8859-1?Q?nnIv+qwWiaNuD4VJwJn1PxbF4Xt95JrxwxCxtStRobD+Tiu9QZ0S2amKMa?= =?iso-8859-1?Q?67AoRbj3rwS66ItW0sV4qh8OYMf2ZZ0w2di48+haFiyEjdMk/5tIzlvrO+?= =?iso-8859-1?Q?p5dw48nbUkKSZiY+vfxVU60Mn6PWlMYaPWY+cj9RUQsv3sZIXbpEX1v5Mg?= =?iso-8859-1?Q?KrwGhoru4Y6pPvVJYznFsUhPl7nNGHC4IRShQHaZ+vqZB4VTVCcaubCwlY?= =?iso-8859-1?Q?9c/ZfnQn5jptmXlZv1Ggt/qvFwsGTWF5BWVYZmc/0ldnp1YAM/5x+brUwu?= =?iso-8859-1?Q?6S+d4VccB4zE2WH2o33KPBrKazrY7xEEqxNAostf6qfOOFcbKwzChBkXlO?= =?iso-8859-1?Q?XQEbqImFS2mJvK1CyzZDayfpzuuZW598strDHkhYS7zs0pHbzs8LjEjEg4?= =?iso-8859-1?Q?vbB6wpDhU38zjvslfu7yroptqUx0dn+n4D36XZ8OCJiGV2DX8arhrA1J/h?= =?iso-8859-1?Q?qg2eupztXIu3wJrt3J2fg1ftrpQkqr/cT37cP5sJf5KOxzVNXp7Q7875jj?= =?iso-8859-1?Q?WN36spdRj9KelcFWzg3r/xhnVlcJRDllqB0JF/y3vwrEnJem587xpJ6ORi?= =?iso-8859-1?Q?eyVoX33wjEPa/tO8SBxLC/ArF/oXaWxFusxllqh4AHjWcD4qEGXSvpZ7Nl?= =?iso-8859-1?Q?VaBciC+1xoWrLPPiuNjKBVlgR5hb4wLhUaaXkxV/j9DJnHqLUz8adN+1nS?= =?iso-8859-1?Q?FZG2xC/gyFvjAfeslhw+GxXVBCz77zAptmpvY1QdBX44kaHRHqFs4+pEUr?= =?iso-8859-1?Q?tw/GXh8kT54qqt9OW3oIQ5DHwxbf8Ipt02K5zl1R/uQ5/lhaxfMCT3Ob6T?= =?iso-8859-1?Q?JZjr3Pr/fRmNsAO4FujAgF7Fbx6D/m5gDIwug6KMlidP3dXJSWB+RR+Lje?= =?iso-8859-1?Q?pjJ7exzNBxGCRABz5OghDixTpZA0JmhWfbGmj7vMrDMvU5e5aN+7JGeSgp?= =?iso-8859-1?Q?0YY05yOuNPgdqQTtq+We5NPGf2utcDw4c3pyvlyerORwDDgrKxoiSkew?= =?iso-8859-1?Q?=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: epam.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR03MB10102.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b989b9a5-78e4-43d7-0cb7-08ddcb86fa20 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jul 2025 14:24:33.8918 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b41b72d0-4e9f-4c26-8a69-f949f367c91d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: h3aY+SSykjOnX9BdiowMzQR2ZH0OTpM0kyfPQLudHQQc0z/JzmZD5GDk9sJm2JDrsVoHux0hhb7flV+RYPCb0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR03MB7421 X-ZohoMail-DKIM: pass (identity @epam.com) X-ZM-MESSAGEID: 1753453499579116600 Content-Type: text/plain; charset="utf-8" From: Stewart Hildebrand SR-IOV virtual functions have simplified configuration space such as Vendor ID is derived from the physical function and Device ID comes from SR-IOV extended capability. Emulate those, so we can provide VID/DID pair for guests which use PCI passthrough for SR-IOV virtual functions. Emulate guest BAR register values based on PF BAR values for VFs. This allows creating a guest view of the normal BAR registers and emulates the size and properties as it is done during PCI device enumeration by the guest. Note, that VFs ROM BAR is read-only and is all zeros, but VF may provide access to the PFs ROM via emulation and is not implemented. Signed-off-by: Stewart Hildebrand Signed-off-by: Mykyta Poturai --- xen/drivers/vpci/sriov.c | 119 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) diff --git a/xen/drivers/vpci/sriov.c b/xen/drivers/vpci/sriov.c index 640430e3e9..bf8d9763c6 100644 --- a/xen/drivers/vpci/sriov.c +++ b/xen/drivers/vpci/sriov.c @@ -39,7 +39,8 @@ static int vf_init_bars(const struct pci_dev *vf_pdev) for ( i =3D 0; i < PCI_SRIOV_NUM_BARS; i++ ) { bars[i].addr =3D physfn_vf_bars[i].addr + vf_idx * physfn_vf_bars[= i].size; - bars[i].guest_addr =3D bars[i].addr; + if ( pf_pdev->domain =3D=3D vf_pdev->domain || bars[i].guest_addr = =3D=3D 0 ) + bars[i].guest_addr =3D bars[i].addr; bars[i].size =3D physfn_vf_bars[i].size; bars[i].type =3D physfn_vf_bars[i].type; bars[i].prefetchable =3D physfn_vf_bars[i].prefetchable; @@ -166,6 +167,44 @@ static void cf_check control_write(const struct pci_de= v *pdev, unsigned int reg, pci_conf_write16(pdev->sbdf, reg, val); } =20 +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT +static void cf_check vf_cmd_write(const struct pci_dev *pdev, unsigned int= reg, + uint32_t cmd, void *data) +{ + struct vpci_header *header =3D data; + + cmd |=3D PCI_COMMAND_INTX_DISABLE; + + header->guest_cmd =3D cmd; + + /* + * Let Dom0 play with all the bits directly except for the memory + * decoding one. Bits that are not allowed for DomU are already + * handled above and by the rsvdp_mask. + */ + if ( header->bars_mapped !=3D !!(cmd & PCI_COMMAND_MEMORY) ) + { + /* + * Ignore the error. No memory has been added or removed from the = p2m + * (because the actual p2m changes are deferred in defer_map) and = the + * memory decoding bit has not been changed, so leave everything a= s-is, + * hoping the guest will realize and try again. + */ + map_vf(pdev, cmd); + } + else + pci_conf_write16(pdev->sbdf, reg, cmd); +} + +static uint32_t cf_check vf_cmd_read(const struct pci_dev *pdev, + unsigned int reg, void *data) +{ + const struct vpci_header *header =3D data; + + return header->guest_cmd; +} +#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */ + static int vf_init_header(struct pci_dev *vf_pdev) { const struct pci_dev *pf_pdev; @@ -184,6 +223,84 @@ static int vf_init_header(struct pci_dev *vf_pdev) sriov_pos =3D pci_find_ext_capability(pf_pdev->sbdf, PCI_EXT_CAP_ID_SR= IOV); ctrl =3D pci_conf_read16(pf_pdev->sbdf, sriov_pos + PCI_SRIOV_CTRL); =20 +#ifdef CONFIG_HAS_VPCI_GUEST_SUPPORT + if ( pf_pdev->domain !=3D vf_pdev->domain ) + { + uint16_t vid =3D pci_conf_read16(pf_pdev->sbdf, PCI_VENDOR_ID); + uint16_t did =3D pci_conf_read16(pf_pdev->sbdf, + sriov_pos + PCI_SRIOV_VF_DID); + struct vpci_bar *bars =3D vf_pdev->vpci->header.bars; + unsigned int i; + + rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL, + PCI_VENDOR_ID, 2, (void *)(uintptr_t)vid); + if ( rc ) + return rc; + + rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL, + PCI_DEVICE_ID, 2, (void *)(uintptr_t)did); + if ( rc ) + return rc; + + /* Hardcode multi-function device bit to 0 */ + rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NULL, + PCI_HEADER_TYPE, 1, + (void *)PCI_HEADER_TYPE_NORMAL); + if ( rc ) + return rc; + + rc =3D vpci_add_register(vf_pdev->vpci, vpci_hw_read32, NULL, + PCI_CLASS_REVISION, 4, NULL); + if ( rc ) + return rc; + + /* VF ROZ is covered by ro_mask */ + rc =3D vpci_add_register_mask(vf_pdev->vpci, vf_cmd_read, vf_cmd_w= rite, + PCI_COMMAND, 2, &vf_pdev->vpci->header, + PCI_COMMAND_IO | PCI_COMMAND_SPECIAL | + PCI_COMMAND_INVALIDATE | + PCI_COMMAND_VGA_PALETTE | PCI_COMMAND_= WAIT | + PCI_COMMAND_FAST_BACK, + 0, + PCI_COMMAND_RSVDP_MASK | + PCI_COMMAND_PARITY | PCI_COMMAND_SERR, + 0); + if ( rc ) + return rc; + + rc =3D vpci_init_capability_list(vf_pdev); + if ( rc ) + return rc; + + for ( i =3D 0; i < PCI_SRIOV_NUM_BARS; i++ ) + { + switch ( pf_pdev->vpci->sriov->vf_bars[i].type ) + { + case VPCI_BAR_MEM32: + case VPCI_BAR_MEM64_LO: + case VPCI_BAR_MEM64_HI: + rc =3D vpci_add_register(vf_pdev->vpci, vpci_guest_mem_bar= _read, + vpci_guest_mem_bar_write, + PCI_BASE_ADDRESS_0 + i * 4, 4, &bar= s[i]); + if ( rc ) + return rc; + break; + default: + rc =3D vpci_add_register(vf_pdev->vpci, vpci_read_val, NUL= L, + PCI_BASE_ADDRESS_0 + i * 4, 4, + (void *)0); + if ( rc ) + return rc; + break; + } + } + + rc =3D vf_init_bars(vf_pdev); + if ( rc ) + return rc; + } +#endif /* CONFIG_HAS_VPCI_GUEST_SUPPORT */ + if ( (pf_pdev->domain =3D=3D vf_pdev->domain) && (ctrl & PCI_SRIOV_CTR= L_MSE) ) { rc =3D map_vf(vf_pdev, PCI_COMMAND_MEMORY); --=20 2.34.1