From nobody Fri Dec 19 20:55:38 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 049B726D4C0; Tue, 27 May 2025 12:08:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347710; cv=fail; b=NnZ7hfYJ0/vQJ783eqNCA4dEStsBO5Rgmc7LNaLTQBryO5y2tHfd2f9CcJap7Yx59tCcNJBttu95NZXZrPTvLXB6bEaahzMb7HAL92jzW84/7uEQg723L30FEysLaOTOB5XMZ0vnO8wvoE+Js0rLhLhnJke4n8aNBlJLZs2BgyU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347710; c=relaxed/simple; bh=7x27nvPMamiwAFnLJ4HNoq6PeruwSYFz1B5n7a1TyEA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ImNrF0iPifE7bS1NLhUO2t6FuS5F6/C+hRb8Dd5fPj3VT0CNIX+PKlMBQqyYwzEfGWjeEZPJpGCobLbROgZsE+FFnrXoqvsBpQ89ZsCisLpfFMC2QkMrmfJtq26yaVYEcdFRpxvFEcfrB6tILAn15Bq/i9h0kYc+kixl57pxzRQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=lGMa9yfg; arc=fail smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="lGMa9yfg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1748347709; x=1779883709; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=7x27nvPMamiwAFnLJ4HNoq6PeruwSYFz1B5n7a1TyEA=; b=lGMa9yfgQcXVIFXyN0huCDCYV9/i3O66M8ftiaY67xIKxIFZ/YrI9rOX Z7Rtm4dRjoikR7vY0fG32wGRKZ9vV9vjsbIK976s0klUM/EQc7kAFCHml VDnMNR57VQW30fbGWXBpgA/ZTp5HoBPCkzMRXoVHYfGm8Pk4QLTsxZqfa eJt49qpn5Ppll0m5lW+wjka3gwdnbpgH54C4bzaKNdobh3YwfvNy0BECw G2qRj/1HL5V4qWutaaqOuWRb1vnnBQJ6QGGMcb2px4iWz9sZJFDTpBE1s rp8RAEgKb9lGkOm0XxoI//KMSSRLGyQwoEzbMp6UT8gviSV8EwjymRimN Q==; X-CSE-ConnectionGUID: xUJ4Wh+/Rl2RCvkt7CwbOw== X-CSE-MsgGUID: 8c/a1njNRdWUzIzUwQyK1A== X-IronPort-AV: E=McAfee;i="6700,10204,11445"; a="60965491" X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="60965491" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:29 -0700 X-CSE-ConnectionGUID: FVP26tt2SPa4slmi7tcLeQ== X-CSE-MsgGUID: pXKMz1h/SXKiwhHXY5A6LA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="147660690" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by fmviesa005.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:28 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 27 May 2025 05:08:28 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25 via Frontend Transport; Tue, 27 May 2025 05:08:28 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (40.107.237.40) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.55; Tue, 27 May 2025 05:08:24 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gTCF5a5y0WF+bsaZhFbVgYe+T57SVor3XWtzg0NNYK5NnHZV2c5vR7hKJRXvDZEUeEBsXxP5iY+uB71fmypi9fClq4jUSPO0oQ1IUlLBkQ3Pr4gHFz/JUeVF5aJDeMM1rBApenfKn1gcCwILLPTlie5OK9GIbqGbHTWm+naidcGaZfgKQrW16HBdMooEid084LylrdqNCmn5IvxABh5Ys+cOgH8cpmvle9VfqJLsi+yEr9xpGiu4gGEVAb3f/WOygPNB4rlRLgHPrADf6y1lYxXCIO4w6RRDXvUd1NkgvrnVRthfbgJnQpIkvW63zTzwhHLa88POfNnmAmr0QYWT9w== 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=kLepjD4leasReweot3v83n/c8WyOI/L/zXrWKrMXMDM=; b=jGTm3zHm7zoWHyDOwJPdjBy4C8rIu2ZNotCPDq69LszGHCbd/iLyx++xoG23ZLQoLtfkca1MLdXSNDrMsrxUTYlW+wz1mnrIswSNfvM3lQC+FqsHPfLdkj3cMhmBGOPyT2B6cIs25bVVhHKdtlcoYQbE+42MLtSP4LYXtih/5W3INH0H+yJzAgbaiYsgIfGNLDrb2Fb6VQyQpkLgsgZsgmESb3GthVktWRjieuZY8beuNian+q+sO6fmKdqUJ81t7V2Ct5B3mfgX9uHTEBQyfz2vips63UOIT1oSY0EK1r/vjm8McS96Mbr71ggo9ABGPlluUzljQWk5DXiLRRqxkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by SJ2PR11MB7575.namprd11.prod.outlook.com (2603:10b6:a03:4ce::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.24; Tue, 27 May 2025 12:07:50 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39%5]) with mapi id 15.20.8769.025; Tue, 27 May 2025 12:07:50 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , , , , "Bjorn Helgaas" , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= CC: Rodrigo Vivi , Michal Wajdeczko , Lucas De Marchi , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Matt Roper , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v9 1/6] PCI/IOV: Restore VF resizable BAR state after reset Date: Tue, 27 May 2025 14:06:32 +0200 Message-ID: <20250527120637.665506-2-michal.winiarski@intel.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527120637.665506-1-michal.winiarski@intel.com> References: <20250527120637.665506-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VE1PR03CA0054.eurprd03.prod.outlook.com (2603:10a6:803:118::43) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB5373:EE_|SJ2PR11MB7575:EE_ X-MS-Office365-Filtering-Correlation-Id: 42b73149-268b-451c-84dd-08dd9d1719de X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?L2QrVCt4cS9KeWU2ejR4ZzdqRUNUaGdlTUxERW1hL2JZSHo0K1BTWWxhQnVO?= =?utf-8?B?cUtQY2VrUThKb0JBZjZoMU91aEFKUTVpZ1g0VWw5K0hlR2hqODcyaWZCNmZx?= =?utf-8?B?bmtWWjdORzRzdmlzTW1ldkd1RTR6c1V2WEJrL2NXSUcwN1ZBMWlxcmRVVWd2?= =?utf-8?B?RndId00rR2t1dm1ydUdRTlhFU2J4ekVpZUthdk9OdWgyaDdIc3BnRVZnK3Ex?= =?utf-8?B?MXhvaUNJSUxTUnZaVEQxV04xd3ZVMWkwek5ZRE9HekZucWJyWmQ5ZnJ2ZU0r?= =?utf-8?B?NU5taUJxaWw5MENCQXpXcFQzSFp4RHl1QnBTb2xRc1lHSGFsZDk1UVBCaDZE?= =?utf-8?B?WEZZTUFJSTBTS0NCMFo2bVhQS0k1Y2VuaG1YRHB0VVU1ZDBNLzN3WWM4WklN?= =?utf-8?B?Q1JIL1I3bTN3MEdZbmxTcUpxZG5sV1d1SHNQemtJeHdja3hFQlkvbTB4dFJU?= =?utf-8?B?TFdnUE5vajRIbGN6MThqUk5QMDQrek1rT1FtV3g5c0s4YVV1ZmwrbXEzZjVr?= =?utf-8?B?WW1BNHNYVndvT2ZKeDRyekVuRlpLOCtjeUVRSlFJMkQyY2dYRzYwVnowby8y?= =?utf-8?B?dnpLUUQzb2Z4bVJsWHloWmFyWWp2TEZUaExMRktRTWNPc0JYUm9wTXpBQU9j?= =?utf-8?B?M2VaMlRtL2g0VEhDYUo5Q3RFVFdHN0MwYlRIaHBjRmZMRDBGS2ZRNk9KcDNq?= =?utf-8?B?dHkrM3RURmNXYVVmUXVJT1JnNURSbTlvc2ZrcWp1Y2lPZ2wzQ3pKSWZQZUQ4?= =?utf-8?B?ZWZkU3dNNFV6aEEyNnhxaTZHTGdlQ0s1REw2b1J6U0ZGV1lXL295NUExRWpT?= =?utf-8?B?L2ZNQUR5dkdNV01uU2w5M0NlVnM5Vk1EM3RkMlk0Rm9hcGNpdUpNc0VnL1NX?= =?utf-8?B?M3h1M3EvTWdiNEdJQlF4VFV2NkVSL1pGWnROYnBMSzI2MXhyNWZlS3RqNHkz?= =?utf-8?B?MVROMzIxK1QvNUVxUnFmTFd6UDRuMWJaMHpmc25pOHJIWlp6WW8yY21iRCtk?= =?utf-8?B?MmhKZ3BPK1BOTlBsRWcrUmE5a2k0SW45WGJiZi9ET0lJMHZXVWZvbnhYVHV4?= =?utf-8?B?elpqam1kb3FPS0h4VHBVT2hTMmNabU9sd01hNlZCTkw0WmRidERBQ1RLdTIx?= =?utf-8?B?b0lIQnBSNkdsbzBrTlUvLy95Qjl4cVZYME5qMitjQ1gvK1VTbnJMZXpTc0Ru?= =?utf-8?B?NldvNVoramVvMUR3ZDFCWm9wZ25nNkloUVp2RkNmVmxTZWtCcW9MYU9reU4z?= =?utf-8?B?MXhUak44ZFFtbEdqaVI1VmFWWGk4QmhKamNHbmkwREtiWnV0RmR4NUR0ekla?= =?utf-8?B?Zmxoam9XNnRhelFEU1RmbTU5VHVjM00rb3FEMUZrQ3hSanI0M2lnMEIrWlQ2?= =?utf-8?B?OGpZTysvTiswTDdBdVlXeDlqei9WaHJ2OXc2ZzRodWh1NTlLQkU2QVAwNnli?= =?utf-8?B?bzNvMWNKd01pdGVWTUZKUG9UOEZxbzBzb01yQTNJWm51SytJS0NBY3JUeGdQ?= =?utf-8?B?amlxNE5ybU1xM09jZWx0ZFMxdDNaRWtva2FFZ2JISWtQZkFXTnNIQlhIclVM?= =?utf-8?B?SXF6QTJUM0hNZ3VlRFA0Mkg0TlJ4OE1jUjlleDZlSlpGWGRuaFFBL2dWYXAy?= =?utf-8?B?eHJLR1N4cm1zZ093Q2xrZDNyZHdMeWJKTWxJRldjM2lOb0VpcFR6SW9Za1Jv?= =?utf-8?B?U09wTWN5WGxBUnNWTkREbUFaaEJ0SndkelpFVFgxSkVVaUhkNXJ5NHkzazJW?= =?utf-8?B?aXZPRTBHZE5zSGsxV0owejVMQk53YUpQa3UyYU1tUGtkSncvZmxvU3BMaURu?= =?utf-8?B?c3E5VDlRSU14QVJ6OVhvY1lqUGdBTjQvajB5RmJQNmhFcmFJVmVLUVhaNnNV?= =?utf-8?B?TzFTU3dFY0dVUERkTDQ2azNBOVlKYzl4WjdKaW1RaHpHUXM0cW1mcGk3R0hs?= =?utf-8?Q?zNREsF1JxdA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UmhOWHFRVUpVd3FjWTZNZk9LWi9mSXJMNUlIUDFCQVdZWnQ1SWRsMnExZTZN?= =?utf-8?B?ZTFtUHVhSXozYUU4clJ3dzIzSm0zWlBLQkRJZ2wwWkdjNmphb2xyMUtQeWxC?= =?utf-8?B?MzlEQzd2ZWhEYXE1b3FURkNscHpURzRzeVZKTndxMVlKL3BrZ3RVYWhJSmNZ?= =?utf-8?B?RER5Q0RXQjNzalA3cmoramVTZm1RWlNwQTQ0UHU0Y3RWblpmd25tRkI2dWZw?= =?utf-8?B?bG1ZWUZCb2hTQ3Y3MU0ybC95d0toejhzTlZhbVE0dHQ3RzlyMHp0ZmRCWkNH?= =?utf-8?B?UTlJbktNZGR6Qm5jR3NIV3BQaHlaZ2RCOG5iekVINlljUjgralR0ZDVjd2JC?= =?utf-8?B?TDE3b3JrUGZUWXFxai9meURIUE9KQnZXZWpsRFFBYXhuRlpaTTlHOXRMS1NO?= =?utf-8?B?S3BYM0FvLzUrOHU1OGhaUTRta205VEk0WHNUbG5DemZZQjFBMHlYWTd6R0gv?= =?utf-8?B?QnFMK1NaaG4yd1IydjQ5eE1tQXdrMTZiakRCOWZPbUNNVDEvUGdTemhVNU5D?= =?utf-8?B?OVZ6YmFwY3pmUXZicVZZeFk3YXNtMGpmQ2pyenBDT1VldjQwTXB6Nm1CREV3?= =?utf-8?B?MTVsVWp4VFR5eFk2K1ZmV21CRWhubjc0VWR1KzNkczFSSXltUkZYV1FQcWdL?= =?utf-8?B?M2lQT2Q1aHNYNm9mNkxteXdPTDB5bnhFcGZ3dDd3OEw3NFlyVi80cys3di9K?= =?utf-8?B?QjdxcFowRDBGdXY3M1FPbGpscklyd21EdVIwcFBOZCtVM29YNityaDZUSTJ0?= =?utf-8?B?R2FJT2xlL0pyajVGLzdhY3ErbXFGZ1dvMitpUnBmZ0xJYTdLN1VZSXcweHFT?= =?utf-8?B?RDBlSnZMTUZudG1taUdTQ1lCWmhoKzMzS0tIcWhPLzFJaEtQZzFlUk9oTC9o?= =?utf-8?B?ejNWWSttWTUvR2o0YlFTT3lteFM0K3luVDhZUFFUOGJVT3dEa1pLMDl5SGkr?= =?utf-8?B?a2JGREpMbkIxWTRRdDI3RmFVMkJSVm1pMU5jNFlXeitjU1B6UklJbi90UG1O?= =?utf-8?B?elJ6RHc5Q2NuVThqUjJoY0J0VTBFWXBNaVBVT3pEbHBlaWNwS1RscEIrcFZz?= =?utf-8?B?WC9GNW4xaEtjdW1CVytGcWhxMFdFaldXU0ZOK0hzeDRBTEZTZUlSTzhWelpO?= =?utf-8?B?WW9nTW0vV3h6blpNc2NPOUZQRG5sakYwZlBjVndycG9PazNBQTFEcVFkMGpt?= =?utf-8?B?ZkhMdEptUnpEeFJ6S09YYmhYc2ZEbVl5YWl5emlxRzRGeWhEM0I0eGg3b2Zn?= =?utf-8?B?eVd6R2ZTT0NyTmVqcFhKT0Q4NHFsRWZpNDBCbEIwcmg5QVk3UlNxZGhISDVC?= =?utf-8?B?d3p6OXlEdFQ0KzNWK0J2VzBWY2NKUmxnSTZyNGh3dlVUR1pvWkhqcjFwN0lM?= =?utf-8?B?MUxFdWF4NzJwMnFlNFJvY0plUUdWeWFZWFI4L21ZRkRnQVVzZlZZcUlUR3I5?= =?utf-8?B?ZEVseUFHbDVjbTU1RHRlUjRpSUNyMS9FczRuV1pVMVNtcndpS21QcUxreUUr?= =?utf-8?B?Y3M1akNWaXo0eTBUNkhETzQ5V3cxSXVmellXTkhYMmREVU9qVytXOUpoM2RI?= =?utf-8?B?b1l0WHJicHIvOFY2enJGNnhVdnVxdVhsWWVkR2U0Sk15MXA1VFVYeGc4N2NN?= =?utf-8?B?RGdOMzdBTXhBWXV0WVFhL2N6M3pFeXArS0dRMDM0bzFia25nUVZNZk5TdTM4?= =?utf-8?B?Q0xTc1luSm9TS1Z4M052eFpONXpwWnJkSXVKUW5IV2E1c1MyenBUU2loVHl5?= =?utf-8?B?eFRvZTNzTlRmUFE5cHZPbWVWYmtaK0tQTzdabzRobzdRU3FORnQ3bUtmRDl6?= =?utf-8?B?NzZ1OVdUbC8xc2hpSEs4ZjBxY2RVMGNoa1VDV3grTzFONkhQQUdCWmg4b3FS?= =?utf-8?B?dUo2SzMxcVN1dVFldlRhSU1xTkhSdkRKcXdTeWpxUjFkNWxUaDl4U2xrUlkz?= =?utf-8?B?SUh3QXZFT2hzeUh0ZkxPZEhDcFRTcFo5eUhmV3NpTHhjMXdCbkZhb2dBVVNo?= =?utf-8?B?eXRKZ09mS3lEOExGbVlRSWZLNStCcnRwN1VkTG00bTF1QlFDdHpWS1Jra0Rv?= =?utf-8?B?ZndsYzdoL0pUeWtNSXBqOTN5UXJQaHFkVnZPZkpPbDgzYS9RUDlKY2FnUzNK?= =?utf-8?B?ZGM4RTd5ZWtlRkUyd1k0VkJrdkJFc1k5QWJCSUUrMEhZeFMrY0ZVbXEyMkF6?= =?utf-8?B?WVE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 42b73149-268b-451c-84dd-08dd9d1719de X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2025 12:07:50.1633 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zZh20Qyp9iWY2Z1dinqD6r2itUJSO71oInsEJpv2SVB7AzVuaAeg3Q8qBKuD+hPl/7/lc0DhXDHrNmPnWLyAaYlHGop7lSPS/+Z3Ethffuk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR11MB7575 X-OriginatorOrg: intel.com Similar to regular resizable BAR, VF BAR can also be resized, e.g. by the system firmware or the PCI subsystem itself. The capability layout is the same as PCI_EXT_CAP_ID_REBAR. Add the capability ID and restore it as a part of IOV state. See PCIe r6.2, sec 7.8.7. Signed-off-by: Micha=C5=82 Winiarski Reviewed-by: Ilpo J=C3=A4rvinen Reviewed-by: Christian K=C3=B6nig --- drivers/pci/iov.c | 30 +++++++++++++++++++++++++++++- drivers/pci/pci.h | 12 ++++++++++++ include/uapi/linux/pci_regs.h | 9 +++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index 10693b5d7eb66..10ccef8afe145 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -7,6 +7,7 @@ * Copyright (C) 2009 Intel Corporation, Yu Zhao */ =20 +#include #include #include #include @@ -850,6 +851,7 @@ static int sriov_init(struct pci_dev *dev, int pos) pci_read_config_byte(dev, pos + PCI_SRIOV_FUNC_LINK, &iov->link); if (pci_pcie_type(dev) =3D=3D PCI_EXP_TYPE_RC_END) iov->link =3D PCI_DEVFN(PCI_SLOT(dev->devfn), iov->link); + iov->vf_rebar_cap =3D pci_find_ext_capability(dev, PCI_EXT_CAP_ID_VF_REBA= R); =20 if (pdev) iov->dev =3D pci_dev_get(pdev); @@ -888,6 +890,30 @@ static void sriov_release(struct pci_dev *dev) dev->sriov =3D NULL; } =20 +static void sriov_restore_vf_rebar_state(struct pci_dev *dev) +{ + unsigned int pos, nbars, i; + u32 ctrl; + + pos =3D pci_iov_vf_rebar_cap(dev); + if (!pos) + return; + + pci_read_config_dword(dev, pos + PCI_VF_REBAR_CTRL, &ctrl); + nbars =3D FIELD_GET(PCI_VF_REBAR_CTRL_NBAR_MASK, ctrl); + + for (i =3D 0; i < nbars; i++, pos +=3D 8) { + int bar_idx, size; + + pci_read_config_dword(dev, pos + PCI_VF_REBAR_CTRL, &ctrl); + bar_idx =3D FIELD_GET(PCI_VF_REBAR_CTRL_BAR_IDX, ctrl); + size =3D pci_rebar_bytes_to_size(dev->sriov->barsz[bar_idx]); + ctrl &=3D ~PCI_VF_REBAR_CTRL_BAR_SIZE; + ctrl |=3D FIELD_PREP(PCI_VF_REBAR_CTRL_BAR_SIZE, size); + pci_write_config_dword(dev, pos + PCI_VF_REBAR_CTRL, ctrl); + } +} + static void sriov_restore_state(struct pci_dev *dev) { int i; @@ -1047,8 +1073,10 @@ resource_size_t pci_sriov_resource_alignment(struct = pci_dev *dev, int resno) */ void pci_restore_iov_state(struct pci_dev *dev) { - if (dev->is_physfn) + if (dev->is_physfn) { + sriov_restore_vf_rebar_state(dev); sriov_restore_state(dev); + } } =20 /** diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index e39a2a5df587f..5eb9a7558998b 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -486,6 +486,7 @@ struct pci_sriov { u16 subsystem_vendor; /* VF subsystem vendor */ u16 subsystem_device; /* VF subsystem device */ resource_size_t barsz[PCI_SRIOV_NUM_BARS]; /* VF BAR size */ + u16 vf_rebar_cap; /* VF Resizable BAR capability offset */ bool drivers_autoprobe; /* Auto probing of VFs by driver */ }; =20 @@ -710,6 +711,13 @@ void pci_iov_update_resource(struct pci_dev *dev, int = resno); resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resn= o); void pci_restore_iov_state(struct pci_dev *dev); int pci_iov_bus_range(struct pci_bus *bus); +static inline u16 pci_iov_vf_rebar_cap(struct pci_dev *dev) +{ + if (!dev->is_physfn) + return 0; + + return dev->sriov->vf_rebar_cap; +} static inline bool pci_resource_is_iov(int resno) { return resno >=3D PCI_IOV_RESOURCES && resno <=3D PCI_IOV_RESOURCE_END; @@ -734,6 +742,10 @@ static inline int pci_iov_bus_range(struct pci_bus *bu= s) { return 0; } +static inline u16 pci_iov_vf_rebar_cap(struct pci_dev *dev) +{ + return 0; +} static inline bool pci_resource_is_iov(int resno) { return false; diff --git a/include/uapi/linux/pci_regs.h b/include/uapi/linux/pci_regs.h index a3a3e942dedff..f5b17745de607 100644 --- a/include/uapi/linux/pci_regs.h +++ b/include/uapi/linux/pci_regs.h @@ -745,6 +745,7 @@ #define PCI_EXT_CAP_ID_L1SS 0x1E /* L1 PM Substates */ #define PCI_EXT_CAP_ID_PTM 0x1F /* Precision Time Measurement */ #define PCI_EXT_CAP_ID_DVSEC 0x23 /* Designated Vendor-Specific */ +#define PCI_EXT_CAP_ID_VF_REBAR 0x24 /* VF Resizable BAR */ #define PCI_EXT_CAP_ID_DLF 0x25 /* Data Link Feature */ #define PCI_EXT_CAP_ID_PL_16GT 0x26 /* Physical Layer 16.0 GT/s */ #define PCI_EXT_CAP_ID_NPEM 0x29 /* Native PCIe Enclosure Management */ @@ -1141,6 +1142,14 @@ #define PCI_DVSEC_HEADER2 0x8 /* Designated Vendor-Specific Header2 */ #define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff) =20 +/* VF Resizable BARs, same layout as PCI_REBAR */ +#define PCI_VF_REBAR_CAP PCI_REBAR_CAP +#define PCI_VF_REBAR_CAP_SIZES PCI_REBAR_CAP_SIZES +#define PCI_VF_REBAR_CTRL PCI_REBAR_CTRL +#define PCI_VF_REBAR_CTRL_BAR_IDX PCI_REBAR_CTRL_BAR_IDX +#define PCI_VF_REBAR_CTRL_NBAR_MASK PCI_REBAR_CTRL_NBAR_MASK +#define PCI_VF_REBAR_CTRL_BAR_SIZE PCI_REBAR_CTRL_BAR_SIZE + /* Data Link Feature */ #define PCI_DLF_CAP 0x04 /* Capabilities Register */ #define PCI_DLF_EXCHANGE_ENABLE 0x80000000 /* Data Link Feature Exchange= Enable */ --=20 2.49.0 From nobody Fri Dec 19 20:55:38 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BF349267AED; Tue, 27 May 2025 12:08:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347699; cv=fail; b=Jzh63+FizurWkkZ8lKdPLlFqPuEdfVLkLhpuDzmBNzwaEru/F1owiTl/OgH+eaic719r9GXo3HcUeC3HcdYc/HL3vBL5jcc/x4xlYMTrK+s9yI2Ye/QH2LM9m2xtGcvqgFwAEkndKluY0QtCTJArjJIf+bDxNUkaLnNtTrCpCdA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347699; c=relaxed/simple; bh=1l23ILsRYnVP25nDh0vb2b5SBu/0uZ/+PEQRiY7/OC8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=baabNoZDPBOu8Ub7pvL9ghNLKEQ4T1js3E3yqWdy7b4l9Ei0e4CCcdaJYRQpimN2Hk+T6DCaAHmZbWBqEDqHx7MiVVWoJgptuf5/gRpIIvIdJohzXFTGWUSgFd1CQf1I9RYcky8f4YjiRuPIKY15wy60T4vXDA4FPF1qQdbk6r8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=HnDuaYuU; arc=fail smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="HnDuaYuU" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1748347698; x=1779883698; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=1l23ILsRYnVP25nDh0vb2b5SBu/0uZ/+PEQRiY7/OC8=; b=HnDuaYuUth+w0gssjKfYuubGfOuaaRbYwPPpe3k936BRL7bNBRKyaC2h G6YG9fgT0Iz++lJoM8KdNh4IoJDx6LjKxRjriF2AEX2eXd3nQfM2+Jgza /9F9MPsu059hM/47P3oKe3otbgpClLRYDJx4fU94RNMB13umXfLCgahq5 bcMv7TBUmQbTcB3QxizVsztvt9GOXf8fZy9WE7qKbtUknVF4REQckKlNH Mqhe1mQUbJnl6Sml0zMpoYwBB/a0UasweslIPHsPQBXJE0oz5482SnZnd RdctAAuQKKO26ADv5+2WlgEdIt+YUi2wP3kBoQHSHeUUPnrxW/o2QmHda A==; X-CSE-ConnectionGUID: wfTq2kMVQDK8D5rGGAz7fQ== X-CSE-MsgGUID: FUdcZYvcQYiy00w8z1ci7Q== X-IronPort-AV: E=McAfee;i="6700,10204,11445"; a="60965438" X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="60965438" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:17 -0700 X-CSE-ConnectionGUID: JRr3ScdVSYi7nUxhpW9j6A== X-CSE-MsgGUID: hB5pFPtzR7m+WsPvox2rcg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="147660617" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by fmviesa005.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:16 -0700 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 27 May 2025 05:08:16 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25 via Frontend Transport; Tue, 27 May 2025 05:08:16 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (40.107.244.89) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.55; Tue, 27 May 2025 05:08:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tPu8gdGiBXweikbHf/zdZotiIWt2ggyJkXtN/2hURBXwUrhGcyAnwJkdXfMpO0JPkHgZWiPeWTPNHxRF4RDv+BDCt9HyoVLtBiklRp8vwlKm4/LtWlr1wVs3C9GoTIvoJE7St8WmWxOqW+LJlKo1AdxEBO+2gf8JvTlS37co7PaMYB7A6UgqAicOf3uaNCyfMIQ1K1cOsGBKGPpGum9XWfhKZvmHEqfuvoYKyk5iesPTlR7nsbN94XIroWCgVdxmhxlZDLhgWKXLsxxRPJZcZsQ+VtDhxQWZpDroD53vWLyTvcAcShAcNEaN7UgZZhx0t4ZlLB4+fm6NkrsOwySFig== 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=q1G8e/l9sknPqMGEiWkD4k1UpZoC6TfGOb+xUvL89T0=; b=Mzwxq0e4NJ+mNZbryLIDRPPeTblWxrUlLn0ulTSW8WS8x7XNT+2Q58LYMGuqdHdFOGAfhkXyDh95HowWgd5msxIdFCHUW91h9gP513GeGnIBxak/DdL+ivDOK+aGMuuO3B+FJEn8bvSYCHBtHxk1LK5wNNAU3eQHiPPG121m1Fg8Xw2InOTmQ53FFmO5yPPiGaTwNIn652aXDv+wpTrUy1+YQXm4VS6PKibJBNuR14EX6oU4n7Jx025Qlz2G7zoB1s/wyc1EX2z9qahTUWjQDkz5z33WzOH2tKSxyKPV5OMYRU4a4BUr194XFsvTy9Jx8bSf1+W7CD78jrsGMCwvhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by SJ0PR11MB5918.namprd11.prod.outlook.com (2603:10b6:a03:42c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.22; Tue, 27 May 2025 12:07:54 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39%5]) with mapi id 15.20.8769.025; Tue, 27 May 2025 12:07:54 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , , , , "Bjorn Helgaas" , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= CC: Rodrigo Vivi , Michal Wajdeczko , Lucas De Marchi , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Matt Roper , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v9 2/6] PCI: Add a helper to convert between VF BAR number and IOV resource Date: Tue, 27 May 2025 14:06:33 +0200 Message-ID: <20250527120637.665506-3-michal.winiarski@intel.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527120637.665506-1-michal.winiarski@intel.com> References: <20250527120637.665506-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BE1P281CA0173.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:66::18) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB5373:EE_|SJ0PR11MB5918:EE_ X-MS-Office365-Filtering-Correlation-Id: 750fecb5-88d9-4e50-66b3-08dd9d171c75 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MG9mOWg4enlWczhxRlJVeXh3RTFIZVBtbGs5Vng5VG83Z3hLUDErRjVPMGpO?= =?utf-8?B?Vkp1VFJucmNvcUd3MjdvU1IxK1pwTHh0TGppT3dPL1JOWDlFT0p0VW5lVG5V?= =?utf-8?B?M0dWWWZ1amlPMzZvd1dXQU5QK2daMFp6eXFPa3RuUHVRcENNSkJYYjlvbjZl?= =?utf-8?B?M2NHQkJ0TkVvN1hCNENmMTEzTFdSZGtORWZxVU9JNTBaRGs4OTk4TmlOK21I?= =?utf-8?B?L0hqQnBCNWhTRWRrMkRqUzFlcHlFcnEvSmJ0bjdUeWE4UzV3ak9nb1RaV2JT?= =?utf-8?B?WUEzYXZJNVFha0RPQWxmSTBXbjBDaGR6NU9QR28vR1N0eXRtSVRHeCs1cHNy?= =?utf-8?B?U2pnVnZzbWhaemNSdWNUbGxaTS83b1lvSnhMWFJHVjNBTHdJQnVQcHZmdzQ3?= =?utf-8?B?dExHT3hqT3Q2ZGxoNGRKT2lDcGFHbGNKbmthd3pnMko5dEgyVGg5bnZFRHhC?= =?utf-8?B?aEpUUXBVeUtiMnM5RE9kNEVvUkxmNWtLQzEwVlRlL0x2R3Arczd4Rm8yVjBL?= =?utf-8?B?NFBGRkpMRk1TOXIvNmJxWk1QeXRHd0tHZDJvNnZmb1lvTWh2a3dDS2NPV2Jr?= =?utf-8?B?MFlOMHlwbE5ya0ZSZi9QbW1EYks1ZHRGREgwM2x4NkpGWEgxTW9WbkYyejk4?= =?utf-8?B?SXUycWxkK01tUmNENzdiTVpXNkF4TXhBVjloUUwwSzZTYjNsdFR3ME5xOVVS?= =?utf-8?B?aEhPVzhBZmFhcmtneUxUeXZucU5EMXZDbDIybjVFK3JtVERpTXFOVWV0YnNj?= =?utf-8?B?WlY3UEdjYWs1eW5pdnpGUUM0bmRha2tPcXA4YXBKMk9BM0dYckt6enJsc1dt?= =?utf-8?B?QXByNlYyRVFpVHZFYzBlL0h1WENBVUNCSnFwL1BPdDRydzFMa1VScUEwaFZJ?= =?utf-8?B?VEdBemRyd0VLOWNhNzZudlUyMUdTWXI2czZWelhUOWgxcUpRdlBNL0JmdnRM?= =?utf-8?B?N080TVU3cFR3dUdmKy9OanREMEU0S0pudFBVTnJXNUpLN2cvY3l4bEpVTE9V?= =?utf-8?B?VUtsQTVtbXVjdWVCOWhuNGZJWEhjenRSQTdiUkZ0RTg4cGZvam1SUmRCV01K?= =?utf-8?B?RDA0ZkMzd0tJMW5UeVJYY3pUNTdlRys5d1NRM2taTXBhUnphYnpyQ2h1SzQx?= =?utf-8?B?U0k5eTdlRFkyTFdiSXIvNVMrc21aMXQ5Y1RER25HNllUOTBBZ1FweXFnaUla?= =?utf-8?B?a2dUeS95M1I0ajh2bE1xZW45aWo3MFBBU0ZZSlJuSGVxOGhHVUYxTmROdTRT?= =?utf-8?B?MnZ2dWIvRmxsakgzckQ2NUJ2Vjd0YTUyVDB0WTR6eFB0Qm5XU0hlKzVTSDZH?= =?utf-8?B?cHBlRWhXV3V0dmNoSTRKRkUycDIzZldhd29CZ0JrdCthSEN3TGdkNHJRSWly?= =?utf-8?B?QklhVDFlaERwRDVmc21SOGkrUU8zK0VZbi83bzhmRHB0bVYraTBsSEgwVitk?= =?utf-8?B?OGhUU3Q5WFhDRFlzTkJOdFJscVFZaGZMeHdQVTNoaUM5WVJtTzMrSDV6TmZH?= =?utf-8?B?WkxPTzk4S2hXRVNnMkxhSUVWaWVOTnNqV0NaRzVod3FXWjhGTFB6REFDazhw?= =?utf-8?B?ZDljMDA4eC9YUVlWRW9qL2FQT0k4L0FSWStSV2RmUm9LZmZWVnA5bytMdXYw?= =?utf-8?B?VERLV3ZxR0xmakR0dFNaTmNKVjhlc2xVN3A2cXZUNGwwRDhyM2ErTkxuaHhM?= =?utf-8?B?UGM0SlUvb0ZRV1FPajNEb2JzRE84eHZHOW9rY2ExV2l5dFAxM2l1M2gyM3F2?= =?utf-8?B?VWMvRGJTZm0ySDljalc3ZFNHeXNHODhjT3ZzbTRkbkJKQnRPa3lkUDVZNlhZ?= =?utf-8?B?OFlVYjMzUkN3M2lMQ29iWVNOWHI3ckQyQ2x0aUN4bEUraDZvRUs4b3FCVndh?= =?utf-8?B?TmI5WXlNM3FnSU8rZ1RUMHY3d3ZOR2UzaXF4dm1CWUZGTXIydkFYbUdIeXEw?= =?utf-8?Q?I9nspNlL5ZY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QlkySElJSmVDTXVBV2oxSFpGVC9MRUZhSTBqbTBNTTNUNFhuVU5wMko2ekxD?= =?utf-8?B?NGw4S0I0Y2hDOW9iUlBsZXVudlF0MEh5M1hpeFRJWUQyUUF5eVcrOHRXTVY5?= =?utf-8?B?SFFnRm9IRjNRdldJUE1wakZvdmloOGdlUU9Ic1BGbUhQaDh5cW9ISXp6WWhi?= =?utf-8?B?bUFheVhyUEcxc0ZKNEtYbkw3cW5OUHhTQ2c1ZFhzU2NUWTdKZUdTNDVjcEVO?= =?utf-8?B?WVZwSzdwdi90N09PNnhXSmtmK2EremlxVHVNa3JNMGVUMWdLZU93by94ZUxF?= =?utf-8?B?NXdyaFd0aWd2ZTVxKzNzRFcwOXl3ems1LyszcGJtc2FRcGpxZGR3eWpxNUhH?= =?utf-8?B?c2h3ZXpRRC9MRDBRd01yWkNRVG9hRjhCdUNpSEJKSjkyOTNXeXZOdWMzK21y?= =?utf-8?B?MnY4NEV2T2dtcTBhRVFkeGQ0aVBOaXE4RUFTckdBcUhqeEdHVXFrVHBEdzE0?= =?utf-8?B?OFU1SHY5cm1HeU9TTlNJbXBFYitCcjM4b3dkVHQ2c0E2cEdSUzliekNLMXE1?= =?utf-8?B?R2ZxV0pUN0lyV0ZIWkZnbnVyaUxvRkNKQi81Z3dWNjlvMEpCdzlJVEE1TGQx?= =?utf-8?B?enliTDRpMWExamVzeWxJYjEyY3ZqakxxRVoxc3NlSHdJeTlmNWlzQjViWmFE?= =?utf-8?B?OHZycHI3WklHbGk3OTVnRU9VWFBnTGljRU90MXlGdkIweWxjV3Z1RXJZM1p3?= =?utf-8?B?Ui9DcUQyNjg5cFRzRkIzb0wwdGJLTzc5Nm56RnhIeFRoWmY2VXhjQ29IcWlo?= =?utf-8?B?T0lsc3kyQzNqMVAzL0E4L29YVDM0a3ZYbVpIeTMwa0N6bXFkakV4NjhQWUtq?= =?utf-8?B?MTU3cHZ4aFNESS9PTFk1dFFDNXo0anp5aGwrS0JCdWxvMDF5YnNPWW1xd3p0?= =?utf-8?B?V3d3aXRzWTNHNVY4Q245YmNxRWJTUFJ6TFRKdUdiaWhyNkdXQTV0SVFHVk9x?= =?utf-8?B?ZTFXSlhkZ0wyOElvemIwL214WHRsY1djSjU0cDFYeG1PcFo4SE1SOXc0L0FC?= =?utf-8?B?aHZ3ZHVHZHVUbDhDVHVmeWlzQStGYzdIa0pPVFo4Y2QwSjhYU2lwQm9Tdkhx?= =?utf-8?B?S1VFeVYvT2RYNnVOVStoclpld3NnWEVmMi9VcC8wRVZ5VnFKTit5b1FTUVFy?= =?utf-8?B?UzRHYjJMQ2NQZ2s1eGYyamM0UXU3MUZtWWM1QjBrd1QwZVlTZG1acDR0cWYz?= =?utf-8?B?MGV1M0xKc015N0lyV0xteWp5ZldhOHBtcUJQMlhRU3padkFveUFvcXZLS3FG?= =?utf-8?B?dmcxYTdLcS91VTN1dXhxR0FFK0h0amZ4QWRQQUd0UHZ0YkMwZnhNK1dZVGMv?= =?utf-8?B?RE1RRUpwOVI3MUxoL1NmZE1pcWNabzZLR1pnU2VVTlB6SFdYaWxheitaS2NU?= =?utf-8?B?bk1IQWkzN2p1WFgreW95YjB3VlpHcUs3OHo2YXNicjBYM0YwYjhsMTBnL0ZR?= =?utf-8?B?aXNmamtYRUVmRVlxZGI0NXFJNm1FczNZUnpyVGlya3dqWWR1Skg2L1AzYnlm?= =?utf-8?B?cDlqRkRnZ09mclg5MTc1VnN2Qk91ZWExNjdPOTE1ajU5N0FoOW1hUzVHaFpM?= =?utf-8?B?QlFTTHNjbnNXOU1TaTFOSjhzL3Zxa1BVUGRvQVN3ZzB1ZDE1TVhuaGtxYy9w?= =?utf-8?B?M1JBYUpnYUJrU3NFbGhDQk9mdHd3WWZWRlpIZUVPMXkxNWhCQlM1cmJscWdZ?= =?utf-8?B?YWVzTHdFMktMNDd3ZFowOWRrQWxJNFp0MXlkTnpDNFBST0hSNjlsREY4U0d4?= =?utf-8?B?cjA2RGcrOTM0M0pJSWowYzdBSlNOWGw0R09pUFlxcWozaCtWK1puRmpER0hI?= =?utf-8?B?a1dza09QN3hHSEVFZEpaSC84dGpTVlpybjhiRTVhV3lid0dOQVFKekl1N3Bk?= =?utf-8?B?QXRGYkVSOGh1RzJEZ0paeW53aVNnem1HM2U2Sk5VRFNuOEx3TFZKWFlYTlNH?= =?utf-8?B?a2NTdC81ZVVuK1hmRE1Gc1REK2xvY0xYTHZpcEFmYVhWZEV4c0g5TTRRMDBs?= =?utf-8?B?U29YbEpMczYveWRtZmxsT1MxSjhianBRY2hQcnIvb2UxbmFTcE41Y3Btajhs?= =?utf-8?B?cSsxRjBZbWR4bGJKa2hDMGVrOEY1VlNiajJ4dmFYNzZUVkVTMmEvSjhURW0r?= =?utf-8?B?TXdEaE1wanMwMlM4SkJzckRtQVhwREtmWElEaFlrYy9IK1lXVGplck5zQzFD?= =?utf-8?B?QkE9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 750fecb5-88d9-4e50-66b3-08dd9d171c75 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2025 12:07:54.4784 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: N4gJklYniehz4Ta83yoN1g08VnkqG8CyyQsN58oYzHELE1IcGTBY+WYnK5LsiF3zl+ImmXsUng+j0GvPMnMVqjgE4exmjK9BNoW+3OSAHyg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5918 X-OriginatorOrg: intel.com There are multiple places where conversions between IOV resources and corresponding VF BAR numbers are done. Extract the logic to pci_resource_num_from_vf_bar() and pci_resource_num_to_vf_bar() helpers. Suggested-by: Ilpo J=C3=A4rvinen Signed-off-by: Micha=C5=82 Winiarski Acked-by: Christian K=C3=B6nig Reviewed-by: Ilpo J=C3=A4rvinen --- drivers/pci/iov.c | 26 ++++++++++++++++---------- drivers/pci/pci.h | 18 ++++++++++++++++++ drivers/pci/setup-bus.c | 3 ++- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index 10ccef8afe145..bdac078045525 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -151,7 +151,7 @@ resource_size_t pci_iov_resource_size(struct pci_dev *d= ev, int resno) if (!dev->is_physfn) return 0; =20 - return dev->sriov->barsz[resno - PCI_IOV_RESOURCES]; + return dev->sriov->barsz[pci_resource_num_to_vf_bar(resno)]; } =20 static void pci_read_vf_config_common(struct pci_dev *virtfn) @@ -342,12 +342,14 @@ int pci_iov_add_virtfn(struct pci_dev *dev, int id) virtfn->multifunction =3D 0; =20 for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) { - res =3D &dev->resource[i + PCI_IOV_RESOURCES]; + int idx =3D pci_resource_num_from_vf_bar(i); + + res =3D &dev->resource[idx]; if (!res->parent) continue; virtfn->resource[i].name =3D pci_name(virtfn); virtfn->resource[i].flags =3D res->flags; - size =3D pci_iov_resource_size(dev, i + PCI_IOV_RESOURCES); + size =3D pci_iov_resource_size(dev, idx); resource_set_range(&virtfn->resource[i], res->start + size * id, size); rc =3D request_resource(res, &virtfn->resource[i]); @@ -644,8 +646,10 @@ static int sriov_enable(struct pci_dev *dev, int nr_vi= rtfn) =20 nres =3D 0; for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) { - bars |=3D (1 << (i + PCI_IOV_RESOURCES)); - res =3D &dev->resource[i + PCI_IOV_RESOURCES]; + int idx =3D pci_resource_num_from_vf_bar(i); + + bars |=3D (1 << idx); + res =3D &dev->resource[idx]; if (res->parent) nres++; } @@ -811,8 +815,10 @@ static int sriov_init(struct pci_dev *dev, int pos) =20 nres =3D 0; for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) { - res =3D &dev->resource[i + PCI_IOV_RESOURCES]; - res_name =3D pci_resource_name(dev, i + PCI_IOV_RESOURCES); + int idx =3D pci_resource_num_from_vf_bar(i); + + res =3D &dev->resource[idx]; + res_name =3D pci_resource_name(dev, idx); =20 /* * If it is already FIXED, don't change it, something @@ -871,7 +877,7 @@ static int sriov_init(struct pci_dev *dev, int pos) dev->is_physfn =3D 0; failed: for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) { - res =3D &dev->resource[i + PCI_IOV_RESOURCES]; + res =3D &dev->resource[pci_resource_num_from_vf_bar(i)]; res->flags =3D 0; } =20 @@ -933,7 +939,7 @@ static void sriov_restore_state(struct pci_dev *dev) pci_write_config_word(dev, iov->pos + PCI_SRIOV_CTRL, ctrl); =20 for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) - pci_update_resource(dev, i + PCI_IOV_RESOURCES); + pci_update_resource(dev, pci_resource_num_from_vf_bar(i)); =20 pci_write_config_dword(dev, iov->pos + PCI_SRIOV_SYS_PGSIZE, iov->pgsz); pci_iov_set_numvfs(dev, iov->num_VFs); @@ -999,7 +1005,7 @@ void pci_iov_update_resource(struct pci_dev *dev, int = resno) { struct pci_sriov *iov =3D dev->is_physfn ? dev->sriov : NULL; struct resource *res =3D pci_resource_n(dev, resno); - int vf_bar =3D resno - PCI_IOV_RESOURCES; + int vf_bar =3D pci_resource_num_to_vf_bar(resno); struct pci_bus_region region; u16 cmd; u32 new; diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 5eb9a7558998b..9218f9037546e 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -722,6 +722,14 @@ static inline bool pci_resource_is_iov(int resno) { return resno >=3D PCI_IOV_RESOURCES && resno <=3D PCI_IOV_RESOURCE_END; } +static inline int pci_resource_num_from_vf_bar(int resno) +{ + return resno + PCI_IOV_RESOURCES; +} +static inline int pci_resource_num_to_vf_bar(int resno) +{ + return resno - PCI_IOV_RESOURCES; +} extern const struct attribute_group sriov_pf_dev_attr_group; extern const struct attribute_group sriov_vf_dev_attr_group; #else @@ -750,6 +758,16 @@ static inline bool pci_resource_is_iov(int resno) { return false; } +static inline int pci_resource_num_from_vf_bar(int resno) +{ + WARN_ON_ONCE(1); + return -ENODEV; +} +static inline int pci_resource_num_to_vf_bar(int resno) +{ + WARN_ON_ONCE(1); + return -ENODEV; +} #endif /* CONFIG_PCI_IOV */ =20 #ifdef CONFIG_PCIE_TPH diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index cc37cdb5e3522..a7d85b0f3a6cb 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -1884,7 +1884,8 @@ static int iov_resources_unassigned(struct pci_dev *d= ev, void *data) bool *unassigned =3D data; =20 for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) { - struct resource *r =3D &dev->resource[i + PCI_IOV_RESOURCES]; + int idx =3D pci_resource_num_from_vf_bar(i); + struct resource *r =3D &dev->resource[idx]; struct pci_bus_region region; =20 /* Not assigned or rejected by kernel? */ --=20 2.49.0 From nobody Fri Dec 19 20:55:38 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 336F5267B74; Tue, 27 May 2025 12:08:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347700; cv=fail; b=MkHCuAcsX2Hpf9/GGlCTVgHAt8TcbHX825DM4LD1pT+Pp8E0ziayBTLNoc+Vuj3zKvZ9Vstss3nhx7HXERQtQfGHmGKXkclH068K1b7pVXkrt0OKQi/1veJnswigJPlWGER2WuyvD4a2A55qemgPcnIXSJD5gDZsvh55e/asO/E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347700; c=relaxed/simple; bh=9kW9LLCZgDwDe+QGDSEIpJNLpYqWuhWBOLPMVpmMEUk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=gCLywYv/4qTkgLdQZHktkGgcELhefqnzXR7wdAAUDmUCarBRby/eyaoEOkuNQvD1VLl+2oj5NR0O2hbY8Yo8XctEufkGEBti8Gdd8e89gjausu0IZUvzOqwR7GgoQXWKeVA8Yq8qxguDhBXqXgfC+F6BG6qlAjGLJRnHEhfQ9Lw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=DG1gb6ls; arc=fail smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="DG1gb6ls" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1748347699; x=1779883699; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=9kW9LLCZgDwDe+QGDSEIpJNLpYqWuhWBOLPMVpmMEUk=; b=DG1gb6lsAgTJwmr+efAqo1C8QX/fkFF/yAV40YwAaNm0O6nO6BoCqPbj hXLnuDwp/bwKeqq2xtNXMpEyO4ENvmespc2RXzAkgU2LCnILld8ctetao +y24CUvYOZmyWigZbLORINb1y9Jnjr5B+3WVUXZh1D+bBFqLXTcOmtBUy j8Dh9uAYp4dC3c4ym6NRUsoiyrud1xVeLAqdevRNamEdwNR5+D63k8q0U Lz7zO+tG724stnSgRKN9J/XEm5NMjny4VP0oqMqM2P9SHnKrUU6gKE0Tu Kp9I9G3M5D8c1OkVTOvVKU8LeSEw5RbrdZpmLpi2Qo/eZJl8W6lD3dg3k g==; X-CSE-ConnectionGUID: QsGDPghVQGipNFZAuSlFKg== X-CSE-MsgGUID: drqv+8aHSfyhHCa+0jIKgQ== X-IronPort-AV: E=McAfee;i="6700,10204,11445"; a="60965449" X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="60965449" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:18 -0700 X-CSE-ConnectionGUID: z3aDPjPRRWWed7mwLg/rpw== X-CSE-MsgGUID: kNy4koQvQ/eb3+wzE4ixSg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="147660633" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by fmviesa005.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:18 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 27 May 2025 05:08:17 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25 via Frontend Transport; Tue, 27 May 2025 05:08:17 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (40.107.223.68) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.55; Tue, 27 May 2025 05:08:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wmuxo40nhOCcoPor+5MmMcSNU0y1Dg8yceUenUZ5IlAJwddLOw3rwMxzSWHZDr5yhk13/1+j8hPnrP1VJMTNW2ybla39vxZ8n/j3NErEPuIEfIJ7rmG/lNucRgHi1SK4Mu/8yunO1n1MNSm8VxUMQu1dL74O8y+ih3qk6EVF3tIGRgk8XvGI/sSgXy9iW34fFgl64WQXVZNhFI/D6ienTN5EtNcs8qzko2qu5atLhY2gEeJDxMU8eSkFjAUvvuh1DGR0hiC4UwPIk3iJqpYf9lemFDktX9irodKRDB6Ficob65k5tVDOnzLRLKDYU0HGVL+hVD94hxd4zVNgrt+5ng== 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=Hyrz9bbaZBD9CrBOQVH+8M/zaUycb6bo11I1WGdY88I=; b=PTVZzvAq+YHGknTIh5n7AqTXNj4A3jAvaA5AapFhTfXQOpczRaZR8AOPlXwgNfkdQmWvp43cZdPF/zZmDj4Lei/kasWhq5ATSvBgVQz3JZYdszJtdvy6bYRcQmpsuEwZOO8vjVM/CpFhWaHBB/Ta27YacqZfoT5wIMs10ysRUoKcp3xXMtmPkpURbVvwidO+69G8G41Xp3aUfg/tw0d7V35+eRjECMJZr5sRYx5MK4mXgDHr1edsNep5hq2T3qWe80pPdhyhkx5hmj/5vm0J8F85o2mermgJWbiYAtt6+9W3iYNrRbAjUGPeMNbYm5CeC2DIXOeJEcvU9UxsBvLSMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by SJ0PR11MB5918.namprd11.prod.outlook.com (2603:10b6:a03:42c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.22; Tue, 27 May 2025 12:08:11 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39%5]) with mapi id 15.20.8769.025; Tue, 27 May 2025 12:08:11 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , , , , "Bjorn Helgaas" , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= CC: Rodrigo Vivi , Michal Wajdeczko , Lucas De Marchi , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Matt Roper , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v9 3/6] PCI: Allow IOV resources to be resized in pci_resize_resource() Date: Tue, 27 May 2025 14:06:34 +0200 Message-ID: <20250527120637.665506-4-michal.winiarski@intel.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527120637.665506-1-michal.winiarski@intel.com> References: <20250527120637.665506-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR09CA0172.eurprd09.prod.outlook.com (2603:10a6:800:120::26) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB5373:EE_|SJ0PR11MB5918:EE_ X-MS-Office365-Filtering-Correlation-Id: d6b20ced-c395-44b8-5d2e-08dd9d1726b8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZkowZ05kSXVJRGJzOS93ZHRMZmcyZ3hDNlowT1lKSmQ3NnVNYWxHV3BrVGcr?= =?utf-8?B?TXJFNnV4dzRjR251NktZbVRLWThIaDBObVJLSktXbllzbXFvbUtOVm0yZWx3?= =?utf-8?B?TTJ1amVaWlVZaDlNYUgzS3l3NTRaMGVhQm9yNnd0VWd0MUtNSEsrOVdTMXNT?= =?utf-8?B?NlkvVnp3eUprcnExQk9OazZyUGdGZnVacnQwek1LcjZ0c3d1bjdOZWh2bzFY?= =?utf-8?B?RW81MGxYTldiejNiSDczWFNHNVcyVXlsaFN0bWZkdnVuMVE2ZUQvdGJhMGNj?= =?utf-8?B?WmIxZzdVUVcrZ0pjRWhiMWRwL0JjZ0lqcDk5bDR3VStmWDNQcDlqL0piUE4y?= =?utf-8?B?SWFFR003MFA0aW9LYWphaFNHUU1RSmk0ZXJ3OG81OFVQSlVRNHFzamtJZFFZ?= =?utf-8?B?UmVBa2c0ME5UOWQwUnFhQ3N0RWZkVVZrZzl2M0k3RGlUeTljZGpES3VmVkRh?= =?utf-8?B?RmVXQW8xdjU3Q2crc3J0T3JJZEwwVXlmMk5HaWV5Zm1KZDVyMFliNm9WRjFw?= =?utf-8?B?eXBXWjgxQkp1cWpISS9iQ0VTMHc4MldLTURvNitUZzJqWDYxbytVbnVHVGxs?= =?utf-8?B?V1FOUUt2VmQ3eGpudDBZbzhUWDNNYXlHWVpDZjR6Wm16dndldnNCVG4vOEhC?= =?utf-8?B?L1NHN3JobTM5QlFtSHU3bVROWTRJODQ2akQzY21HQjVZK0ZYSFFGWWlJQTZM?= =?utf-8?B?N3lSK1hqejFEYWEvalpmUDd1ZmhjT2NDYjl1cWFpU3E4ZVVvWC9NQ0tGUE9v?= =?utf-8?B?bk5UMCtWNmpEVFp6VDU0QkwzajRXWnRsMjJ0aytTbUNEQm9kcHQ4MkRuOTcx?= =?utf-8?B?Zm9qRGZvUi9EaVF5K00vMlJra2dRamxaeTFyOVZXaHIrWVdvYWlSTUR1Qklk?= =?utf-8?B?MnlvcEpiSVhwWk5hVTQxMGVCZ2k2WjBUT1RLWi8zYmVQcGozQVBEc05wSzhL?= =?utf-8?B?YytCQk9MWXN5NS83TkJuU3JkMG9wQVcwK0hqZTFCR0FXU0RGRzdydWo2YW43?= =?utf-8?B?SzczN2pmdFRaWVFjSDludmxkZHhzOTAwQ0ErV2dkWkhuSklvenRmUmdWY2ZC?= =?utf-8?B?YUpyQ3UwcW1JTjR5WVdXNEpYL2VONkpxVTFTSGF1K3NMVWhOM2xEaDI3Tnpo?= =?utf-8?B?MlVrZ29oTnBmOXpHbG1zZGkwV3pOM0VaZGxlL2FXRHZmeG9yZ2E5Q00rcTkx?= =?utf-8?B?ZXpoQUMwMXdkNHV6Y3U4Y0k2SUkxb2QwVXgzOWx4N3ZPYkQ2b1hKUWVuYmNk?= =?utf-8?B?WUx6c3JuRk9NaHR4VFl6dVdSSEpCemRUTDlwaGg1K0dvck9ESnZhNUZPWk1r?= =?utf-8?B?SDNobi92bTllQ3RoQTVhY1M3dDFYUy9BeDdhV2tDbUVyUzVnMVFZZDlLMFNl?= =?utf-8?B?RGhLNmVscWhiZUlYVnNBRjl6aFVoSWRZbEo3OHVQTXdDdUFkTXlZaTFjeTBH?= =?utf-8?B?TXAzUnAwdDFGUzNUYnFSbFNGKy92TGpCUlFWUEhKcGFwRGJWd3RQbE5Edytq?= =?utf-8?B?SGY1UXlIZzMwbzFTb0loNUwzcEVXaG5UUFh2dXVrUG04THN0VGZSZmNDUWJx?= =?utf-8?B?cWlsQ1BqWE9yZGQ4OExUdXExYldBb2pVQnZmeXlUZTVRV2J6MUtrQ0p3WHNV?= =?utf-8?B?aEdpUldmNitxYm1DMHlPWnF0YkdTRFdoRUdzV3FpMHJqamN0VjJkb09TN2xq?= =?utf-8?B?VDQ3VjVwM0ZRYnVWNTlsbldrRCtzUjdsUk9jNExHRkJGLytiejNzQi9uTTly?= =?utf-8?B?VXorVlNPNTkrcDJQaWl0Um9reGRWMVJTMExyQm5XV0xFdCtORnhzYjFLanFQ?= =?utf-8?B?WVFSYjU5Nm5XUDlYTmtjU1ZnNUt5dWpsSlpUK2JITFl1clhSM0pBNHd1Si9h?= =?utf-8?B?QTlKYVRaUm0vUVB5RXU2NDFoWWlGdHhiQ2RNMEZRWlhiMEdEdE5XVWwxcVZj?= =?utf-8?Q?d5E+IM3/KN0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bmJxOGNldUhlbzFhVEMxVFZBRFFSaG44M0kzaEI0YzF4Z0NseFZGT3BOOGpF?= =?utf-8?B?cy9FcTlaenZUUDdjU3dHVUpHcTZFbUJKSGhkalpQYzNGTVhSZmZaaE1pV2E3?= =?utf-8?B?ZjZ3WG10OSs1UlZLUUNkVUozQm9HUm44SnFrS1VCcUtaSTJPTDlVVU9Ed3Ex?= =?utf-8?B?TERoY0xDRzlGbkhNZzNaV2djTi9Eam4yWXpoYXBJVTZDSE9IWm92TExVVS9n?= =?utf-8?B?SGtQZm50Z1duWm9HcUxCY2NYTG9XSEFOTk9OT0FyOFZHVnFnWjVuNmUxRXcv?= =?utf-8?B?UnIrTnY0cUdla2hOL09sSnZMNDNXRkFIdG5mN1daTkxrZUtOcGdrRVBtejFH?= =?utf-8?B?eXZ6aUlnb3VqazRlYzEwZGdOYkE5ZmpHRktrYk5ZVDVrUi9TczliR1RLaW1i?= =?utf-8?B?R3N0M2lka2dBYTg4dFJpUVh3bHpGa1I5U1Q2ZTlKVWw1NDB1MHM5VXdtT1l4?= =?utf-8?B?QnJaWEVlMmR2SU1GV1I1QzhMYjUzclkxbFA2WnZHUnl3SXYxUGJTT3JDTXVa?= =?utf-8?B?aEtnUGFmb0cxV2hFaUJSc3JrSmZRTXFJNHVDUExFeC9xSW5YdVZnbGNLOUZF?= =?utf-8?B?S3htL3NqY0ZMNGVDczdKOGtVZVFDN2JrdU1pREdIL0FsSzNQMjdJU2lKOExp?= =?utf-8?B?dkxnUzBsWlB4dTdmN1VMcE1ZWEFNOVFidHZvUHdyQTlTQ3BPL1hzWkI0dE9N?= =?utf-8?B?WkIxeWphckdIQWdZMzd0T0tzV2kybmVsaGg3OXJoWUhTMHVNU25yRjhMSldU?= =?utf-8?B?ZUY4eDk1eWtZdXpNaUIzNW5zd2JuRkoreW5VNEIwTnZiYVV3T3hkck9HczM3?= =?utf-8?B?NEErcWZ1OEFmanBzNGJ5cXhVK1Nsa0V6b3F3QmRaSkcxTWtCUXNINVduOHFD?= =?utf-8?B?MmdjWGdQOGRwVzZqNThBU1N4bkxDbnlhdGphNXYxQ2Fya0hlclkvc3RKNWdp?= =?utf-8?B?Q1UyVEQ0eHI1VVZOVGNHem1MMmNnNEhjaVQ5QnVMUlY1WVdUVFN0MVFzczVi?= =?utf-8?B?UGxQTnNsZnQ1Rk1ZQUNGdzQ4Und5cXoyMElkTHlFVzNXR0ZhVHNQSkY0VFBh?= =?utf-8?B?eWlBNUg0eHVIY3h1eXVKbVVEUTNxck51NHpFbjFEVDZuRFB1VXk1bVNzSG05?= =?utf-8?B?NlBOZ2toNEQ1dCtodDJSRGVJMmt1QlFVcUdKVXowc3ZjL3NRZzIxelNiODVv?= =?utf-8?B?NE9FN05kVHErZDU3WFBZaUNhOHZ4Tmtzd2p0TEthTjA1QlFUd2dsNER1YkpE?= =?utf-8?B?Vm5TU2FTd0xNLzlLV1ptQ3FWdTRiSmViRTlVb1cxcmRXVllySTFtSEJGNE9s?= =?utf-8?B?RzJWQk1ucml4YjdDVGNaaE9BZGlRWVZIUkJONXRDRUx1am5ySFRYazVkeVlK?= =?utf-8?B?WnBoSy9mVVJVYTJ2WURSaFIrdVdZR2ttSkp0dEhXZnduaHE5NTFNT2xHNHRI?= =?utf-8?B?TEZJczAyTk9zZXg3b0VrYld0WlNaQTVURmhTVm1qNFJHU2N4UGpSZDdEU2xn?= =?utf-8?B?UHBGZlNtM0x0RVBJK2lKaXlabUF3d1k1UkJQYVJYYzFXWEVINTBJaGhYNWFu?= =?utf-8?B?OEJhRjZnQWlFYVhMN0s0OTJDenJNSEswQlM5WW53RDZXVGdnY3pFUTdzd3Rw?= =?utf-8?B?dzB4WE8vak9md24zR09ubGRaR1ROeEMxdVo4L1FPQ3lDayt6U0x1UUppVmho?= =?utf-8?B?UjNHUk1zYWZIeTZmcWJFeVpDRFNMaUFWMTF1WTJzQnBPUlpQWUladkt1ZW5D?= =?utf-8?B?c0ZwMzB0NTFSbG9aTEJhbzZVNnpnUlNzZEZqUDdQYTZ3VzRWODNEMmF4NlY1?= =?utf-8?B?UmxqMCtXdWUvc1NmTUgzcGlZb2N0TGFtei9MS2dRdE5kd3V4V1d2K2EzMkVK?= =?utf-8?B?aTNGbkhXeitkREdpby9kdnI1czBlWEFoWUg5M0RLNW9PWHFlNmhIazNrOGRC?= =?utf-8?B?WUlpM0NQbTB6TFNVM24vZFcrZ3FMRm9NQVpveFhwci9JQ1FwLzdoMkUzVk9p?= =?utf-8?B?c2tWdUlCcTk3cXhBaGhlUm5iS0RkczMxTU1EWjlubnQrblE3elhwVnYwNHBB?= =?utf-8?B?R3FLT0c3VVRCOEdUOFlucGh4NmlucElBQ1EvdGNyamx3amVIR3A2T0dpMURL?= =?utf-8?B?SmZvSm40OHpKS1NhdGNwb3lxWnRmUWNEbjdZZDR5Q3lISCtMZWJTWVUxdzhx?= =?utf-8?B?Q0E9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: d6b20ced-c395-44b8-5d2e-08dd9d1726b8 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2025 12:08:11.7115 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: U38wYW4hMZTPbaLy21OAC4z6C6yMi7Vgk4DU23h6CLKmyL0dD7RCnZplDJA6vsjne4uvkJ49PUD9ResD4aJ4Mirff9KODjVKlJB1ShUYzoQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5918 X-OriginatorOrg: intel.com Similar to regular resizable BAR, VF BAR can also be resized. The capability layout is the same as PCI_EXT_CAP_ID_REBAR, which means we can reuse most of the implementation, the only difference being resource size calculation (which is multiplied by total VFs) and memory decoding (which is controlled by a separate VF MSE field in SR-IOV cap). Extend the pci_resize_resource() function to accept IOV resources. See PCIe r6.2, sec 7.8.7. Signed-off-by: Micha=C5=82 Winiarski Reviewed-by: Ilpo J=C3=A4rvinen --- drivers/pci/iov.c | 21 +++++++++++++++++++++ drivers/pci/pci.c | 8 +++++++- drivers/pci/pci.h | 9 +++++++++ drivers/pci/setup-res.c | 35 ++++++++++++++++++++++++++++++----- 4 files changed, 67 insertions(+), 6 deletions(-) diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index bdac078045525..852424cf2ae15 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -154,6 +154,27 @@ resource_size_t pci_iov_resource_size(struct pci_dev *= dev, int resno) return dev->sriov->barsz[pci_resource_num_to_vf_bar(resno)]; } =20 +void pci_iov_resource_set_size(struct pci_dev *dev, int resno, + resource_size_t size) +{ + if (!pci_resource_is_iov(resno)) { + pci_warn(dev, "%s is not an IOV resource\n", + pci_resource_name(dev, resno)); + return; + } + + dev->sriov->barsz[pci_resource_num_to_vf_bar(resno)] =3D size; +} + +bool pci_iov_is_memory_decoding_enabled(struct pci_dev *dev) +{ + u16 cmd; + + pci_read_config_word(dev, dev->sriov->pos + PCI_SRIOV_CTRL, &cmd); + + return cmd & PCI_SRIOV_CTRL_MSE; +} + static void pci_read_vf_config_common(struct pci_dev *virtfn) { struct pci_dev *physfn =3D virtfn->physfn; diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 9cb1de7658b55..77c414c79b5f7 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -3752,7 +3752,13 @@ static int pci_rebar_find_pos(struct pci_dev *pdev, = int bar) unsigned int pos, nbars, i; u32 ctrl; =20 - pos =3D pdev->rebar_cap; + if (pci_resource_is_iov(bar)) { + pos =3D pci_iov_vf_rebar_cap(pdev); + bar =3D pci_resource_num_to_vf_bar(bar); + } else { + pos =3D pdev->rebar_cap; + } + if (!pos) return -ENOTSUPP; =20 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 9218f9037546e..5d7b22ae025bc 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -711,6 +711,9 @@ void pci_iov_update_resource(struct pci_dev *dev, int r= esno); resource_size_t pci_sriov_resource_alignment(struct pci_dev *dev, int resn= o); void pci_restore_iov_state(struct pci_dev *dev); int pci_iov_bus_range(struct pci_bus *bus); +void pci_iov_resource_set_size(struct pci_dev *dev, int resno, + resource_size_t size); +bool pci_iov_is_memory_decoding_enabled(struct pci_dev *dev); static inline u16 pci_iov_vf_rebar_cap(struct pci_dev *dev) { if (!dev->is_physfn) @@ -750,6 +753,12 @@ static inline int pci_iov_bus_range(struct pci_bus *bu= s) { return 0; } +static inline void pci_iov_resource_set_size(struct pci_dev *dev, int resn= o, + resource_size_t size) { } +static inline bool pci_iov_is_memory_decoding_enabled(struct pci_dev *dev) +{ + return false; +} static inline u16 pci_iov_vf_rebar_cap(struct pci_dev *dev) { return 0; diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c index c6657cdd06f67..d2b3ed51e8804 100644 --- a/drivers/pci/setup-res.c +++ b/drivers/pci/setup-res.c @@ -423,13 +423,39 @@ void pci_release_resource(struct pci_dev *dev, int re= sno) } EXPORT_SYMBOL(pci_release_resource); =20 +static bool pci_resize_is_memory_decoding_enabled(struct pci_dev *dev, + int resno) +{ + u16 cmd; + + if (pci_resource_is_iov(resno)) + return pci_iov_is_memory_decoding_enabled(dev); + + pci_read_config_word(dev, PCI_COMMAND, &cmd); + + return cmd & PCI_COMMAND_MEMORY; +} + +static void pci_resize_resource_set_size(struct pci_dev *dev, int resno, + int size) +{ + resource_size_t res_size =3D pci_rebar_size_to_bytes(size); + struct resource *res =3D pci_resource_n(dev, resno); + + if (!pci_resource_is_iov(resno)) { + resource_set_size(res, res_size); + } else { + resource_set_size(res, res_size * pci_sriov_get_totalvfs(dev)); + pci_iov_resource_set_size(dev, resno, res_size); + } +} + int pci_resize_resource(struct pci_dev *dev, int resno, int size) { struct resource *res =3D pci_resource_n(dev, resno); struct pci_host_bridge *host; int old, ret; u32 sizes; - u16 cmd; =20 /* Check if we must preserve the firmware's resource assignment */ host =3D pci_find_host_bridge(dev->bus); @@ -440,8 +466,7 @@ int pci_resize_resource(struct pci_dev *dev, int resno,= int size) if (!(res->flags & IORESOURCE_UNSET)) return -EBUSY; =20 - pci_read_config_word(dev, PCI_COMMAND, &cmd); - if (cmd & PCI_COMMAND_MEMORY) + if (pci_resize_is_memory_decoding_enabled(dev, resno)) return -EBUSY; =20 sizes =3D pci_rebar_get_possible_sizes(dev, resno); @@ -459,7 +484,7 @@ int pci_resize_resource(struct pci_dev *dev, int resno,= int size) if (ret) return ret; =20 - resource_set_size(res, pci_rebar_size_to_bytes(size)); + pci_resize_resource_set_size(dev, resno, size); =20 /* Check if the new config works by trying to assign everything. */ if (dev->bus->self) { @@ -471,7 +496,7 @@ int pci_resize_resource(struct pci_dev *dev, int resno,= int size) =20 error_resize: pci_rebar_set_size(dev, resno, old); - resource_set_size(res, pci_rebar_size_to_bytes(old)); + pci_resize_resource_set_size(dev, resno, old); return ret; } EXPORT_SYMBOL(pci_resize_resource); --=20 2.49.0 From nobody Fri Dec 19 20:55:38 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E97C726C38C; Tue, 27 May 2025 12:08:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347708; cv=fail; b=JXqL2Mc2F+LTbhOmhdHPtqWntZNpzgPxPRHy4KjwhIRyjYOK1i/661e1URmGaO84fyzjlasDes87FkvCFMllSUhsKehjdnY2Vhyw61bjenEoZhToNFkoYRfkjqsFeVTTssuO+FV4xJXFi9FmbqgJzEfRDF7DqUa70whZV6Tbgn4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347708; c=relaxed/simple; bh=5XX+d3fHe4QLhFInVHsvXTy1SfIWSbrGHskllA9YeUg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=SHCNW6n+r52Jxg2Bz8DfAVbRtHiH8oBACDi0IxpYew7icveMTPiiSpxUsto1w89znwCyms1RpIeeFkxg80XFGwLdqBCnWisCLpH8BxvyjUZTm+jDZLQcxSz7pv1PhzeUGYoIC53ZJzgR6ubNN9x0xMmyR4JEPlhhRdjRG06PvDo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=IO5eei4p; arc=fail smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="IO5eei4p" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1748347707; x=1779883707; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=5XX+d3fHe4QLhFInVHsvXTy1SfIWSbrGHskllA9YeUg=; b=IO5eei4pv19qRd/pavCszS0jyd9hQ5EgW1Gs85abMARb2AWPY4nnG8aP 7Cxp3fiJJZsiN3pW79CIYwZgCkRkvUGuSXVo/EBahRUfow7jp0V039Ch/ pbb0bD9gaxbFl9LshEge4PZ8qvhBpJ+cF9zhNPhIRipXQ+ZvXzrNeGx4F hl6Z2uULQKdyOaK1I5fG4TCaKscZ4gshw/oAStaEUvaMlOTMADQaYPsVl x/1qz0Bd4hP6l6hJei0LPTjTr5WGTQegryxdECK1zwnm2EjqLN9mIhM3H GwlBO77LCKZAxXuJFAZBFM8kGNrf/uRlE/2EHf83dqXzHxId03qZdvs3s g==; X-CSE-ConnectionGUID: 6zoHlEu5Sw22xGM7DuQzww== X-CSE-MsgGUID: oH3qrrzMSbGV/kWUfbHJrg== X-IronPort-AV: E=McAfee;i="6700,10204,11445"; a="60965483" X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="60965483" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:26 -0700 X-CSE-ConnectionGUID: UL6FmlXCTsqy5HFOQCiADQ== X-CSE-MsgGUID: BbsxBsRIQuiZXzveT53hWQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="147660680" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by fmviesa005.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:26 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 27 May 2025 05:08:25 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25 via Frontend Transport; Tue, 27 May 2025 05:08:25 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (40.107.223.72) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.55; Tue, 27 May 2025 05:08:21 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wq0JnrlYzHlet/51M7WqeKnRmnCudJAFkHukRSzFHLyxTfNwxhAfp8nf5KcWjGaoG6jNqHny4WNkK82AjIgIIi48KRyuPllWDDMs+haKygPlWRQ65DpZOUEsMj/16xiEVWN7kUQGYFE9Kc3JelH0/kRHQSA8kkUA6yw2h9013KIZf6IUUaUDmipWTAMOf2rXS8AZ7ItBGIDXJ/3+E0N7HbQlDm/NLyGBYSqIFKoo1HUPsaH8kreicocbgN4dhSMw4lpe8KFGUQK4lLfoW9VwmUNh/jZpf/uCs62xelb9i0WfLm0RCbMGx4/Ec2AxODEc0TiKHojgs8NuJgg0yR5lFQ== 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=D3yisnENRaQOU2rkhz1qn3jrwnDhw1Reyh/cC+8U3ZI=; b=xMwOtcPphqlKzZSEPJAw3shMaWDYBgAMJtl78Mn2E59ojPxEj5WMO9STLWmkqvgKpyCBvGY3zewOL343e0nXqfK5DbEbpTWoDwmZ/Yd97he0jOr9UukKO+ReQhUorLD2yk/ciZ/cCH7XcoqVeyIXNj81efhmae8vgOm4dNkZxmeirZ/OYuOmW8hyhMfRS9bc50Jq4K3VcwDAUMjEczshzmCyGLfj9zNAt1cSZjEPz3Lz6FaC5g+HXGk0zXcrbjbcaAzzIL7QSPsfUo6zEyDGwa5lUPnI6UYJI9ibngv6KT7Bmdfdz13bb6wEQOCdfpCB/tpFru2dd+53ry7M+mqc7w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by SJ0PR11MB5918.namprd11.prod.outlook.com (2603:10b6:a03:42c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.22; Tue, 27 May 2025 12:08:18 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39%5]) with mapi id 15.20.8769.025; Tue, 27 May 2025 12:08:18 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , , , , "Bjorn Helgaas" , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= CC: Rodrigo Vivi , Michal Wajdeczko , Lucas De Marchi , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Matt Roper , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v9 4/6] PCI/IOV: Check that VF BAR fits within the reservation Date: Tue, 27 May 2025 14:06:35 +0200 Message-ID: <20250527120637.665506-5-michal.winiarski@intel.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527120637.665506-1-michal.winiarski@intel.com> References: <20250527120637.665506-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR08CA0223.eurprd08.prod.outlook.com (2603:10a6:802:15::32) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB5373:EE_|SJ0PR11MB5918:EE_ X-MS-Office365-Filtering-Correlation-Id: 102b00f6-b139-410f-eeb1-08dd9d172ae4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?YXhNYVhjeEl0WnRGQkc4dHdueVFkN0FqSGtLMUlZeGRnMW5tenJmM1I4blUv?= =?utf-8?B?WE45ZEtoSjBhU1pZRFFFSWZkc3UyaUNXc1c2T3F4OTFQU1Z3c0FUc1BHRi9v?= =?utf-8?B?QmdzcEdrVEMxdmZ4OHhPY2V5VFNuOGpKOWlzUld4bmVOd2VzRG5vTmlITFdS?= =?utf-8?B?RmorbWp0VkpxVHA3RFNPYmZjQjBHazJJUmYvZXNpcmxZa1p0WTd4KzZLTTdL?= =?utf-8?B?Tzk4SmJJbmpNSVJhcjVvVGVBMWcwRmw2L3lUY3JubEVaNWIvekhuRFZxdTNu?= =?utf-8?B?VS9BM2NhN0Q1bjJqcnc1QW9LUlBSYmJCTkQrVFhGUWE1Tjd4enZ5M3dOelZG?= =?utf-8?B?OHdoZlpmWWMrUnVaZlZwK2FtckROSTRmWEpqYUl2L2NUcWhYTkJjWGpZbFQy?= =?utf-8?B?Zm9JRUhhLzNPNkVhT2xUU3dDUGVFK0Fnc0UzQlhMYmIxK3BMUHhRYWcyZTNj?= =?utf-8?B?TVY2VXE0MFhNTEsxYnNqRWQ4d05tTXByVkpxeEFtZ2JTRkZQcW1QVGh6YnA2?= =?utf-8?B?LzVxUytVK3JhOUN4NlMwYmZtOXk3c1FUUytsei9RckcxekFBYzl6UDd3enlH?= =?utf-8?B?SU84WGpWZjVBTTJrcWpRaWFHVFJsYndMSys1c3VYSEpReVJESFZFU1l0dHhJ?= =?utf-8?B?VmNGOEViQ2FHQzl5QngxRXU4TkhReDNJRFhGeGxOeTZsaDA0WHBLemFhYy9T?= =?utf-8?B?cm0zSEtZQ0h4cDlGUm1BZXlDaWhxbUhqSHlYRVYrUTJZZVNLSldHMzBwbTdU?= =?utf-8?B?MHZzUmVXZERnN1kxQjRXZG1UTnRhQnp0NTliSStvY3pUK3QzVXhsRTN5eTN0?= =?utf-8?B?ZzhwbFppYzFEck1qeTlQZlBzWnFRQ2dXV0RtajBibWg4NHYwbC9DM1JGeDRL?= =?utf-8?B?cHduQ1krK2ZwNzJWMUlqaU5lczdadFlyMGZaOTh4S1V0YXAvZEJtWTYyZmF6?= =?utf-8?B?ekpkWGZraTNNTG9JWkJjS0NGTGsvTndrSzRGUCtQeFlGbGxhSHQ2aTc2S2lw?= =?utf-8?B?T2lNam4vdkZrUTlVVUg2djVXR29qL0JzN2V4bXd6OTVSdDErZ3B0QTB2S0J2?= =?utf-8?B?Zk5UanJTMnJFQVVhUVp5L2ZveEFmSHNpTExXbGJ5N01NRnBoczJGbm83N0Yv?= =?utf-8?B?cEQ1bnhicGpQU0t6dHBYSDcxMGlCNzVZMU8xSHRYZDFKR1drM0dLeHZ4cVlD?= =?utf-8?B?T0ZXNDlDbnhZV0hRRTN6U21BenlWL2lDdThjWDhRQ21hYmxOZjRzM0NuMDJU?= =?utf-8?B?MHNPeklBK1N3MVpJSjVlNXJpc1ZzdzlMRWVudk5QRlZnaVpXSjJDNTc2elFY?= =?utf-8?B?bzZEQnA5R1h1QkYxVHpaVnV4bzE5NjdrdGsreXdyTmhhOVoxYlVud3hSbUJU?= =?utf-8?B?U296c25nbXZWY3BqKzI4TzZNcm5RTXVQVTNJdHNuMUhucUMvVWY4a2Zjck52?= =?utf-8?B?RURyTGJQalJYUHRqVE9KTEwxOGNjQlhOUUNBdWQxMXNzaVlyRm9uMTRTRXJ4?= =?utf-8?B?UnFTQmV2Z1ZRT2hRT0wwV2E3K3EwSzhxREFkUDh6OVhpamJ0YXcrRDRFdjdY?= =?utf-8?B?a2FVQ1l4SUJZZ2J1TVhUVW5hYk0rY0hJYnlxN2h3Ylc5Rk4yRmVFM3BMbndn?= =?utf-8?B?WFdKMUxhY1RFeEVIaDdtOUwzTDRZNHdmZzhINlVHSFhkV3RCTG4rQSsvY09k?= =?utf-8?B?dDVZNnRBR24zWEFhWmtFbEU2Z25wSEpNY3pHREF5U05yWFNtZFNtdnpyZXNO?= =?utf-8?B?dFB2dThJelBicndHd2tXdlorSjBwT1FDOWU2WXY4UWVJUlVEbmtyMldiRU0x?= =?utf-8?B?QUovbW94YzNER0tMeXdjUm80TXBRS0JQcGMzVHhUV3NjSFJHR2h3ZmdBNFJF?= =?utf-8?B?dk8xMGhnVUhNMW85WnI5amNndnFFSzhKRitwTWRJWnNCSjBQN1V1NUpLK3Vt?= =?utf-8?Q?tTiBAahuHr0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cjlMdDhoQ2Vlb2IzbEVKZmNDWXZQTmE2WHBsczBXNzNISTI1RWIvNjJ3NzBl?= =?utf-8?B?Y1QyVnJNb1lPMGNuNHg4QVNFUUhnYUJFSE1QRjdkQXEvbmlIM250TTNHaklD?= =?utf-8?B?amZtQjJja2Z0b0svWkFRZ05ZVEZ0TitmNFA5NDZqbEVzNVcvVHpJRGw2Zkgx?= =?utf-8?B?VnFzNlEvemRpSWQzSis0RlRxSjdTNVFMSlVKQS80QW1JUmFZN25Nd2x2Y1BE?= =?utf-8?B?NjU2ZXVzbW5ZaHBFVkF1aW1hN1djeGx5UTJXWkxNWWRncVJsZGRHRXk2bFR0?= =?utf-8?B?ZEZMS2czNFA2M0J0RVBzRzlpUVRsVE9NZFdFaDIwbllQTU5GUDNNU0hTRkUv?= =?utf-8?B?Y0VqRWwwMUhlVC94QmlCVXo4TENkcVBiYTMvNkVraWtIc1FaaEQvcEJycnZk?= =?utf-8?B?bDgyeU5nY1dBSnpsZGJ3SUNWOTROTkE0L3VTZi9CVWNyN3ZOa2wyb2diRm9Y?= =?utf-8?B?bkszVjNGL0lDWjcyRUxaSFo3TmdZVTdMZzdWZ3EwdnhzeENQUVB0TmhWaDNt?= =?utf-8?B?eXFmaERJYlZuS0ZkOTVRQmpxRjNtQVBJMlZFRXdlcDVrRks2N3RoMXRtdWdB?= =?utf-8?B?ZWdqcnRiOHBlRjR1ajMyb1IyM0x1VTVwTmlpU3RtNTR6bWNMQlJzcm5uUHBW?= =?utf-8?B?YXRXVEZWajVsd2dOQnZRSWNpc1FqQU9LRlJudEpJUGYwSFp2RUozZ3JzVXNt?= =?utf-8?B?b00rcGd1bUlsOVdFbS9GYXhCR1FDZ3dLSlNndjQ0NDZNWXc1UHdtUXZtWU1P?= =?utf-8?B?S0w3d0VKUDVSWHowcGRlZGNYaEl5ZDZwRTFvazYweWJHNDdOcjhqZkxFcnkv?= =?utf-8?B?VU9QZmpodG5rTWN2NU1hQ1hmb1Y2ejBYWkZ0TERucXh4QXZUNkU5L0pwYlAx?= =?utf-8?B?RTJyNDRyNGNnK0pYMGFtRTZnaGVsVEZoS0toSUQrN0NjT01MZ0ZqTytWQy9H?= =?utf-8?B?RUlyV1hnSlF0UTJXSGthNnRreTM1cjEvSU40dDErbytOclpoejJOb244L2xl?= =?utf-8?B?NFFjN0hTWmtramw1Z0ExdUZRMUs3eU12MFJGeG02eE1Tb1Yyb2pPemFYYW4v?= =?utf-8?B?a2J3aUpHUWpzUmV2MEFGU1FVWEJxRjZ1YzJNUkpndm91c1JBQ0hFaVNVcngv?= =?utf-8?B?T3ViWCtta1JCdTlJNS9jUlhORDNleGVodUJRc3dFZ2t3ZnVGdUMyU296cU9U?= =?utf-8?B?Vm9IdnQ3U3hsbjZsNkNpQXB0ZmpUNXE0bkVvcWF2LzYwbEMxUWJSeGFIYVRN?= =?utf-8?B?bXlZSkQ0TU1LbHYrWDZDZTIzZ2tCTXM0aUkyZlh3MWs1cHlvM3ZqQlZxRFlL?= =?utf-8?B?dHdmZ1pnd1Y5cHAyb3hwSWZ1ak9GSDhUZktzMEh2T2d0aDhWYnA1UlhmL0l1?= =?utf-8?B?Tmx2M0FEMkpRdUV3Z2NrNkR3NzZmNnZaQU1sT0RqNWVpenRZMEVVZEUwRERm?= =?utf-8?B?RHBuUTFsYjlhS0plRlRSLzYzNC8zQ05qRlRCckpDT3ZENXA4TDkrbHJudzd3?= =?utf-8?B?TUNnTHhpK1gzWko0amlTbFpZQXZCOGhxWlRHVll5ZWc2Y3craTFmMUt4WVlw?= =?utf-8?B?d08yMTNmZ29iUmUrRWZ2WlJnUlc2djZyL3JxZzJ5MGJObHFwVHI3NVJmTkhv?= =?utf-8?B?aDRjY0xBRzVRQWdIVnhiMVAwTDhLdEdKR1luL2JCd0d6SDRVajYzT2NQd3Bo?= =?utf-8?B?QXlyazY2N1ZST0VKZUxFS3M3L2x1cG9VaGlhVDR6QmFQMFFxeWlJZTc4U1JQ?= =?utf-8?B?RzNaWHVZU1VVbHA3MGk5bnJDZk1vQ1BWa3pBSVowOTRuNk1ieERmZTNjM3dq?= =?utf-8?B?MTliUWpOR1dxbzgrK3d3TTV5TzFzSnpPZWU3eUNVWFdBd2tlc0tsbDJaVTN1?= =?utf-8?B?UkpzOWhDREdyZndKdHBvY2JoUGY3K21IcXRXeXJLNzRWRytMbmtVWjd0WXdo?= =?utf-8?B?SmVoZGJjMUJ0OFllUkwwU0cxQTNZRUxtMmtOWWxSZjAzdUpzMS9qdVBKdDNi?= =?utf-8?B?TUJBSEg2OHpFaDU2bUlIWEJ1RUhkTFhTTlJndUZpK0NoK0RYSFQwMkJ3dnlm?= =?utf-8?B?c0M2eXN4WEdvdk5CMUpndjYzOEVJazhRTGQzWis3cWRYeWhiMTRWU3hjajlE?= =?utf-8?B?SVBzbWZFWWVzVmhnQS8wUlltNjJ5OUluckhOY2NTdVMrZDgrTGtXTkNaa0cy?= =?utf-8?B?OHc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 102b00f6-b139-410f-eeb1-08dd9d172ae4 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2025 12:08:18.7123 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2tHGXMKItDMQDJ0gfvtCw0nEUxlv2B3AsVcw9KlUqA6TnvaMS7kWKrMF4KkIr90zrX2w5akbIlBG1+yHnb6j/H4zVbPUCiqZN/Bungh2FoQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5918 X-OriginatorOrg: intel.com When the resource representing VF MMIO BAR reservation is created, its size is always large enough to accommodate the BAR of all SR-IOV Virtual Functions that can potentially be created (total VFs). If for whatever reason it's not possible to accommodate all VFs - the resource is not assigned and no VFs can be created. An upcoming change will allow VF BAR size to be modified by drivers at a later point in time, which means that the check for resource assignment is no longer sufficient. Add an additional check that verifies that VF BAR for all enabled VFs fits within the underlying reservation resource. Signed-off-by: Micha=C5=82 Winiarski Reviewed-by: Ilpo J=C3=A4rvinen --- drivers/pci/iov.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index 852424cf2ae15..f34173c70b32a 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -668,9 +668,12 @@ static int sriov_enable(struct pci_dev *dev, int nr_vi= rtfn) nres =3D 0; for (i =3D 0; i < PCI_SRIOV_NUM_BARS; i++) { int idx =3D pci_resource_num_from_vf_bar(i); + resource_size_t vf_bar_sz =3D pci_iov_resource_size(dev, idx); =20 bars |=3D (1 << idx); res =3D &dev->resource[idx]; + if (vf_bar_sz * nr_virtfn > resource_size(res)) + continue; if (res->parent) nres++; } --=20 2.49.0 From nobody Fri Dec 19 20:55:38 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F01DB268690; Tue, 27 May 2025 12:08:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347710; cv=fail; b=pwM3NETWY/Oze8VrYUWvy6eZ1H6oe1KAl2fjZ3aEoYhLT4RLGTNSP20KYbgVVI5Vt4QJb9yoNcca8pvIo8JosMfnxN2Sdi7g+fefdXOh6wBlPo2b7uarkVe1R0Lpau0O96K04Pq5vIq66cWtEwFvBmmQNBIh0GXXrISYTJw5c7U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347710; c=relaxed/simple; bh=YKHHH+gAMghGPHCQOzrfHPlG2tkH+t8Tq5IHVxezQh4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dycuXyT2WenGp8Y91gFn1ZC7XLLqjO1QY7Cr/g+xNs1bpYx4aQyATwyF7LXi8wUbvHFo2ZIhpeWhYZOXAmP5/N+NsEyfgvsC25/fXUgFaNbwWVIMu6QV7up+8HiR6J4jkWhXhXv6Y8nR3B+FpXy/g9hkkT7OCmBb/70BBo81nnY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=bIUqfHI/; arc=fail smtp.client-ip=192.198.163.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="bIUqfHI/" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1748347708; x=1779883708; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=YKHHH+gAMghGPHCQOzrfHPlG2tkH+t8Tq5IHVxezQh4=; b=bIUqfHI/tTId+LPTgcFWPwpQ6vKJ64sgd8H4YQi9rSK2qc5CS71cV01A gTfzvMfxhPHhjUXf+28vb9DVaGu3/mT6mI1bn8iEdwMxcFmJFTSDGU59X xrU4h3RPSBmDIBVkmsQGYcgLNcP0rdr/ujzw5mi6c6ftiA+EUzm5jwyOl cAm4LcoOCUIbu4fZ0luBV6bHGfqczHA3EFVGICdPjBWYAbWmz5PFNU1up SBjFY0fWJwUb0PXV3IGDS8vWpMiDBeK8VexSz/pJTrOEryz/MGgM1PndC XyyaapFl1N2eTtDTgbtYruv0VTFpWUs+WKKqh/MHH8X1vyL+CGykG8KLc g==; X-CSE-ConnectionGUID: lWsrGvF8SsOck09ZoAM3xA== X-CSE-MsgGUID: Wd8KDK/8TAGBArRpXh8i2Q== X-IronPort-AV: E=McAfee;i="6700,10204,11445"; a="49443639" X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="49443639" Received: from orviesa009.jf.intel.com ([10.64.159.149]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:27 -0700 X-CSE-ConnectionGUID: 4MNXlOGfSPqowL4Ej8vhyA== X-CSE-MsgGUID: fjHjf71mSQ+TtKHwSywpYA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="142792268" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by orviesa009.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:27 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 27 May 2025 05:08:26 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25 via Frontend Transport; Tue, 27 May 2025 05:08:26 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (40.107.243.85) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.55; Tue, 27 May 2025 05:08:26 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LZfQFQJciLss+LJw8xEORd7ZkaaBMAPzdu6PHlv8aJ7YkMDsh+wnxQIq7fzBXQadHbRddRTRgWzlk6gemO1WW2K2I/sV9+Tu5liQvrZVS5WurpBwg28VNq7HPMqgSkfASFyTo0bpPAmiddYMwNNaWUOD0fRkoOVqsT7CRGgomEF5eyyrJnjbknj0vzg6/3+GbKKWpyh31Fbd133hFThklUxIbNmj14l2+GwkBGBVKKBITzDpwcfm2oidG5IVok+R7ZE6f/7yfSsczL1qUTJOIArrTPRn2Cu28fRR/9SAJ4mw7zFhM+We/eTLkOuqoPXIRVD1PcOZBz5kKzIw9RUpjQ== 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=sXOHdvYkFN09550Z4gQVbpQ1g3LigYYaHhxYVTomzyU=; b=PO1CazcmEY87hBLi+Qbd50FTtvj1EiqjNUk2qXcVH7QbYiEdObSMGLM1Dqqe1PVX30Au+wgZj0x1eQWc1t4gHNrL3vEaKADx5FQsNisR4dr9NYG1WbYaSy4iBZ5PvbdDXnEzJtj/0FL5Ud6KQ41vYnp9HhS/39vLH2DL5TPwksBrLa62S9uLynHRxPkJ5NU6jHUjlvE8B7FWyLDpRrF1LKPtqPJTHIUdQKFGO6y2/wUDPksJv8bpi1egVfvumnMcZZSSdYePKsCRaWO1eXCFfM3G0/QOYhKGffXQjInXGyaSpisHHqeh7Ew7GgV65djxFgD7U+cOVDcEyOZoAC2i4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by SJ0PR11MB5918.namprd11.prod.outlook.com (2603:10b6:a03:42c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.22; Tue, 27 May 2025 12:08:24 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39%5]) with mapi id 15.20.8769.025; Tue, 27 May 2025 12:08:23 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , , , , "Bjorn Helgaas" , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= CC: Rodrigo Vivi , Michal Wajdeczko , Lucas De Marchi , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Matt Roper , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v9 5/6] PCI: Allow drivers to control VF BAR size Date: Tue, 27 May 2025 14:06:36 +0200 Message-ID: <20250527120637.665506-6-michal.winiarski@intel.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527120637.665506-1-michal.winiarski@intel.com> References: <20250527120637.665506-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR08CA0218.eurprd08.prod.outlook.com (2603:10a6:802:15::27) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB5373:EE_|SJ0PR11MB5918:EE_ X-MS-Office365-Filtering-Correlation-Id: 0cdc7eb4-a540-4a79-c637-08dd9d172dfc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Rys3LzFTbjNncjRWTmJuYkxXQXhZOU12TnB2OU9HelRZaHRtd1loNVRkcVh5?= =?utf-8?B?MWFOODJZTGJ6STJqa1ZXYTVDcFFnVSt0WnlaNUF1a0FYYnBSTWxrM3NKTHVQ?= =?utf-8?B?YmtSQm9DRHloRHFrWUMyVnVTYVZjL1JVQ2F5K1drdkkrZkhzbDU3cFpoMUNy?= =?utf-8?B?NW5LQkw0N1luMnRSd1I2ZmthVEdlTC9WQ3RHUkFkQnRaTFJZZWZtZC9VT3A4?= =?utf-8?B?emcycC9nVFJ4SXd1NWFxckRtN21yUEJpdGQrZDV6d25MWisvMUMyT2VSbjNQ?= =?utf-8?B?QTV3UHRwWEVWT0xCbGVSVVV3OW1SV2ZjNzV4M29wYzVuWTVidkdaNDhDY0x4?= =?utf-8?B?Y1JHR1NSK1VRREpyK0RXNnRIbSszL3REZnF6TjV4L090djZxVERUREFKVjN5?= =?utf-8?B?ZEhZdlR4dzBmbCtKc2ZhdXgwUEI0ZmtUYkdTMEc1M3VNdXc4YTR4QWNqKzFC?= =?utf-8?B?Q2ZzWFhHRjlkRmlScWpCbHovbW00T1NuWVBHbUpxL1hHUGpxWU1kMmp4QjQv?= =?utf-8?B?V1dPeXd5SUtYTUlYcGpmeUxFcmJNVkkzS01vVjVwL1BleXdqaXU4Q0xnMzZS?= =?utf-8?B?OS82Z0dLOGJ0MUFpTWZ3bTRIZ0labVM1dldRcHY4cTJRSkhIVHM0UmtEbTVn?= =?utf-8?B?UVMrdGVhLzRUYm9Mc1EzUW8yWDFyQStadE9oUGtMbWdNUWFtdmtwenZnbU80?= =?utf-8?B?elRTVVJ1MkdoeVVrL1RLN3B3eDh5a1BSVGo2S0JLSExIZTU3bDgxUktIVFZx?= =?utf-8?B?TGFqMVJ3Tkc4M1BTblRGQmVLRG1zQ0F6SFlVTUJMNUR1ZCtTS01GakhlM1Zk?= =?utf-8?B?UlV1SUxxU3FIaW91K1dka1E4emY2V0c1NitnZjFYQ01mcCtxak1XZmVwbGdJ?= =?utf-8?B?TDZ1SzdqeEE3M3ZZYUZpZjVWbVJVOEZWVDQ2eksrOWFQbHNmQk5ZVG85OGNY?= =?utf-8?B?ajBJcVlaTXluVk1OTnJ5SzNZc2IwSEE4UElyNVJROFZBUWhZc1hkQ0xQT0U0?= =?utf-8?B?Q29NZXg5d2lvQU0yYWlkSE1YVGVNV3dvZktVRndvMUlpaFhhQWppclV2SGd0?= =?utf-8?B?eGM1ZUxHTVNnQU81ekU1UFFxeUQ0bDJJUnZnanVkeCs3VStzUytxME1Uc1Z0?= =?utf-8?B?YlVCdVlOMEs1c2ZsTm80RTJnWEpBRXpEeTdFTjNHZjl4Y3oyUk03Nkc0Y3Jr?= =?utf-8?B?MjZjTnpvYUs4ZlozZGpET29wRWxIMDJFRHNhQ2Q3N3dUalJ0MitKSVlRaklG?= =?utf-8?B?RkwrM3pBaDJ1VlE3RStOR2Y3THhPY1czZHkxL3V6bTc0WkR5Qkg3Z1V2dzJ2?= =?utf-8?B?aitLTXgrKzluby9CTVY4OHozeitTZldCUjM5UDRRb1duNTZBS0NhOGRCRTlH?= =?utf-8?B?elJadkdKalhqZlZPOUdnVDJUMlRQRzNRcHIyK2tOcXBEWFc3Qk0rWmhMQThr?= =?utf-8?B?SEtLbW9aaHZMdWY5S1NBcjlTN0oxbmIxUjhaNzRqenExL1gvTG1JODJHZVY1?= =?utf-8?B?cWFKMGcrWXZ6T25FYlh4M0RRS296L2tTT2R2TC9KWGxWZGF1bzEzVFV4Y3J3?= =?utf-8?B?ZFFITmNPQ2lNZFY3ek9GS3gwc1l1WWdaWEpGMzJxYWpKN0NkQ2xmNUlMWmhE?= =?utf-8?B?Um1NZFNoWkMraHdPcmJOclRVUVFXVWUxdlZHL1ZRTkxRejZaRklTR3BFbU8z?= =?utf-8?B?azh3SkdWQkJWQ1Rjc2dOSGVjSDMwbmxSSGxUZW00ZWQzSU5WYnhrazFwdWZW?= =?utf-8?B?akU0bWtlN01oN1lVYVpaRmxQRGgxOGQ2dnFLZTR1UHl0WjJvMXF5RjRFNWQ0?= =?utf-8?B?dFNXTFJCTm5XZDNvNlNGWWVmb1RMSEpFdUFwQWZRRi9BdzlGazdNcFZLTER0?= =?utf-8?B?RllZb3RIbzhyd0FpREd0RVhUbUtxODdLYUF5QWcyMkJ6Yi9RSU14TVFtcXda?= =?utf-8?Q?+h7PnECT+gg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NTM0L24wNnVDcjZLTGhMQ0hMWWsrM252REF1UjQ2Z1ArbkpoQ1ltUWRDQVVH?= =?utf-8?B?TEwxTHd5c0VKdUhYeVNFbElFajR5N3JocWsxOWJHcm44OEZLNWlNak00ODl4?= =?utf-8?B?cVJBSTBRUWlqRGlNWnR2cC9udTlaQVlxOHFJR0FvNkFsMEdXTEgwOXYvTFNl?= =?utf-8?B?R2ZwaklyMnJYSFBUQXczMFFhOGlEV2ltY2FvV0FqRzFRNDArOGlKeHhOanpu?= =?utf-8?B?Z3hqOTM0NzV2S3pHTG9ERkxhTUZjY2VOYzdsd0MyQ29tWlRSa21tVlFYa005?= =?utf-8?B?cEtkSkV4YzFtcEYyWmJLZXhyQ0s2OU8wZVlTNitUUWx4WmNWY0JJNVNuczFp?= =?utf-8?B?dG1JT3VRa29WZzI5OHdjSlZ4SDgvYkYwYzhTdnkveDNZVGNwMVNhL0hUU3pQ?= =?utf-8?B?azJUTkc2OUVaTzZQL2FqWTEwSko3a0g2ejM1WVFobjN6ejFqVzBaYlFrUEpR?= =?utf-8?B?NDVuQjZ3NXZqcEFQTWRRY0lGeUtKMUx0S1NQWFJEczJlM2pwNE9xcGNVbkx4?= =?utf-8?B?R3V3M2gybXQ2M3c3by9qUUhqMDNZZ3dnY25saE90RVlqSnlPZFR5QW0xNzho?= =?utf-8?B?bDBJYyt5R2pQQUdTQW1Xa2o1bWZGaVE2ejQ1dnRLbzRNN2tYZForTHd4MXV2?= =?utf-8?B?cGNIQXZyTXBENXZkNWNXK0NNKzN6c3RUeUgxYk5kcG9VblozN1hCdGJQNWJ1?= =?utf-8?B?UFV4aVVuL2pDczNSam5CTnRCVzFFby9VYVRFRXRkSUxvY3czWTRzb1FXY1lv?= =?utf-8?B?Lzk3cVNveldRSUtIT1FQMlBqYXJRclJoK05DSmFPSzg4N2NuV0x4dkJQQnVv?= =?utf-8?B?WUN2c1BiRFI5VGxVc3dscDZNbkszOS9BTG13VzNuK3psM01KRTNEQ3FvNytO?= =?utf-8?B?akd6TmxZRTk4UUYzem5lSk0vbWs3UGw3SWdZbTVLNFBkd3pRL1J3eUxEazZq?= =?utf-8?B?bUJPTFBLSndqYkFGZkxPc3p6cTdnRTcxQjJjTnVSdzlrYjZyZkIwSWJaTUJy?= =?utf-8?B?eGxNdTVJMkhVS0tWaXJPYURyMWI3VEN3SkdFS093NTlkQTAzaUV2cTM0ZlJT?= =?utf-8?B?bzVEMkREdkwwQkdIU1FhRjhEK3E3RmJoVm9FckY3SThvanpjWFlQTktoWHZr?= =?utf-8?B?eTVKZmFHcGVDeWFOS1Y5LzB5aVpuVWV1eXJaVVJFeGYwWEgvU0lNL1VwVlZn?= =?utf-8?B?MGQ4cnVGUllGY1pVeWlIeStZRmxQSmdaK3puWTRkRnc2Q1I1RmR5U3E3Zmwx?= =?utf-8?B?K0NuVDdvSVBNM3o0L2psV2hXOGdwWVhlU05CWkpaTUw1UWM1bnBSZmVhZ29a?= =?utf-8?B?OElha0pMOFJOeXdpb2lvQU1XZStvREtsU3dvb0VvaHc3NFovbUtEbERqSllZ?= =?utf-8?B?SDc2ekQ5bytpcndnZzI3NERQd3NWRUxEWjZhMVlvY1VJcVJjT084aUs0cEFE?= =?utf-8?B?eWphNS9oZW1mak1NU2JWQmJ3bUdpSDRZVnBlNk92bmk4aTVxWG1nNmtMTHlR?= =?utf-8?B?QkticE1QcjlLb1lWcEc4L2Jqay9MMzNPbnczTlYxMlBxNEJCL29JeVFqNlU5?= =?utf-8?B?bUlSV3E3WFZDMS8zeDlnckxjT2t2TjloM3JTdEc5ODZ5WDNLVkFRMjZCU2h1?= =?utf-8?B?UVlXcVJwNTVHTXIwbDVwUmtHT092d25aZFhHT2xLSG1VcTZ1Q255RTc3ZGdS?= =?utf-8?B?VEdvL2pieGs3bDd6Sm9pYTFETU1kUmFvbk1oUnU2c01uUzBFd3lmcHlqZy9I?= =?utf-8?B?VVorZWJHQlNCTEZHVXNYTjBrSGluRytkdWlNT3ZBLzBGQWk4bXRVd2hxTHFk?= =?utf-8?B?anBldUdTT0tYTFBuYmxlMzVqV1RsYkFUTGxXNmhERDRWQnFDdElBckhqNldX?= =?utf-8?B?VU80ZlprRXVka3JPNW1NN3B0ZEVIZGlhMnFHM2ZaZ0JTZlBhQ2t0ekpoN3JW?= =?utf-8?B?WE13eFlWS004am5XbGtaYmhhUUg4Rm13cXBiekZaZDVHWlBPMzZ0cFgzMzVL?= =?utf-8?B?Z0xiMlluZXBJTWxwN294b3BmdEFvRjYyVHV1NklmNC9iZEFCNnIxWGQ2ZTFx?= =?utf-8?B?SXgwa293YktxMzVCdXJ3c1AvVEYwaDlnQnJvNXRwMG9LbUZxd3NLSWZIVkNO?= =?utf-8?B?U1VleEZMN3NiN3dXV3FPeU1kNkxwazkybi9VSlZDcTJET2JFSnpFT2M0MVlE?= =?utf-8?B?bXc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 0cdc7eb4-a540-4a79-c637-08dd9d172dfc X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2025 12:08:23.9062 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rP55cJ2oX5VQ+vWY/DWsyWSQ9Hj/l3ML81IPVg1AK1lcsSHn0z6MJJCjIh7Pq4+j6ErLSdx7GRoo6LrEh/09YBpNStcw7FfhsIz2glpA75g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5918 X-OriginatorOrg: intel.com Drivers could leverage the fact that the VF BAR MMIO reservation is created for total number of VFs supported by the device by resizing the BAR to larger size when smaller number of VFs is enabled. Add a pci_iov_vf_bar_set_size() function to control the size and a pci_iov_vf_bar_get_sizes() helper to get the VF BAR sizes that will allow up to num_vfs to be successfully enabled with the current underlying reservation size. Signed-off-by: Micha=C5=82 Winiarski Reviewed-by: Ilpo J=C3=A4rvinen --- drivers/pci/iov.c | 73 +++++++++++++++++++++++++++++++++++++++++++++ include/linux/pci.h | 6 ++++ 2 files changed, 79 insertions(+) diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c index f34173c70b32a..ac4375954c947 100644 --- a/drivers/pci/iov.c +++ b/drivers/pci/iov.c @@ -8,11 +8,15 @@ */ =20 #include +#include +#include #include +#include #include #include #include #include +#include #include "pci.h" =20 #define VIRTFN_ID_LEN 17 /* "virtfn%u\0" for 2^32 - 1 */ @@ -1313,3 +1317,72 @@ int pci_sriov_configure_simple(struct pci_dev *dev, = int nr_virtfn) return nr_virtfn; } EXPORT_SYMBOL_GPL(pci_sriov_configure_simple); + +/** + * pci_iov_vf_bar_set_size - set a new size for a VF BAR + * @dev: the PCI device + * @resno: the resource number + * @size: new size as defined in the spec (0=3D1MB, 31=3D128TB) + * + * Set the new size of a VF BAR that supports VF resizable BAR capability. + * Unlike pci_resize_resource(), this does not cause the resource that + * reserves the MMIO space (originally up to total_VFs) to be resized, whi= ch + * means that following calls to pci_enable_sriov() can fail if the resour= ces + * no longer fit. + * + * Return: 0 on success, or negative on failure. + */ +int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size) +{ + u32 sizes; + int ret; + + if (!pci_resource_is_iov(resno)) + return -EINVAL; + + if (pci_iov_is_memory_decoding_enabled(dev)) + return -EBUSY; + + sizes =3D pci_rebar_get_possible_sizes(dev, resno); + if (!sizes) + return -ENOTSUPP; + + if (!(sizes & BIT(size))) + return -EINVAL; + + ret =3D pci_rebar_set_size(dev, resno, size); + if (ret) + return ret; + + pci_iov_resource_set_size(dev, resno, pci_rebar_size_to_bytes(size)); + + return 0; +} +EXPORT_SYMBOL_GPL(pci_iov_vf_bar_set_size); + +/** + * pci_iov_vf_bar_get_sizes - get VF BAR sizes allowing to create up to nu= m_vfs + * @dev: the PCI device + * @resno: the resource number + * @num_vfs: number of VFs + * + * Get the sizes of a VF resizable BAR that can accommodate @num_vfs within + * the currently assigned size of the resource @resno. + * + * Return: A bitmask of sizes in format defined in the spec (bit 0=3D1MB, + * bit 31=3D128TB). + */ +u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno, int num_vfs) +{ + u64 vf_len =3D pci_resource_len(dev, resno); + u32 sizes; + + if (!num_vfs) + return 0; + + do_div(vf_len, num_vfs); + sizes =3D (roundup_pow_of_two(vf_len + 1) - 1) >> ilog2(SZ_1M); + + return sizes & pci_rebar_get_possible_sizes(dev, resno); +} +EXPORT_SYMBOL_GPL(pci_iov_vf_bar_get_sizes); diff --git a/include/linux/pci.h b/include/linux/pci.h index ab62bcb5f99c6..cc633b1a13d51 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2437,6 +2437,8 @@ int pci_sriov_set_totalvfs(struct pci_dev *dev, u16 n= umvfs); int pci_sriov_get_totalvfs(struct pci_dev *dev); int pci_sriov_configure_simple(struct pci_dev *dev, int nr_virtfn); resource_size_t pci_iov_resource_size(struct pci_dev *dev, int resno); +int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, int size); +u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno, int num_vfs); void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool probe); =20 /* Arch may override these (weak) */ @@ -2489,6 +2491,10 @@ static inline int pci_sriov_get_totalvfs(struct pci_= dev *dev) #define pci_sriov_configure_simple NULL static inline resource_size_t pci_iov_resource_size(struct pci_dev *dev, i= nt resno) { return 0; } +static inline int pci_iov_vf_bar_set_size(struct pci_dev *dev, int resno, = int size) +{ return -ENODEV; } +static inline u32 pci_iov_vf_bar_get_sizes(struct pci_dev *dev, int resno,= int num_vfs) +{ return 0; } static inline void pci_vf_drivers_autoprobe(struct pci_dev *dev, bool prob= e) { } #endif =20 --=20 2.49.0 From nobody Fri Dec 19 20:55:38 2025 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99ED1270ED7; Tue, 27 May 2025 12:08:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347717; cv=fail; b=mHvxfMrKUU7gbeMgmp/cVk0uuhVYKJD9Yp8gYGq2h8famLfrGxBNs6AZ07qUtRrR5htWHMtsZ+vM+oxJ9pG414jWIbbFSTkkbsffvBAh7+x4RD8/ToU2lBUgHgdHMrbc/H6EMSo2FBHxSncLHs9MUyZiAzeBoSmWRwzaxDbTRnY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748347717; c=relaxed/simple; bh=yQvZm0Ga/hRwG31Kw3v5uaPPK1j+cEzIWVk6JP2lqn0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MuFePI5Sdpu9fWCnkemizL5/GmSPfaJBtbGDUsVw8pdIWhknHVNQkuBTdifc/mRtnMx0UIp21ALRWQIoEgQJTqvTthZdcv/9HvZ/V0+erV+bb9TTrctzF4yp+qiRsD3U8mfu7QWMiY4wrFyoyTMgUuSEFGbZSlBJCB7x/x86CXk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=SZTMU+zr; arc=fail smtp.client-ip=192.198.163.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="SZTMU+zr" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1748347716; x=1779883716; h=from:to:cc:subject:date:message-id:in-reply-to: references:content-transfer-encoding:mime-version; bh=yQvZm0Ga/hRwG31Kw3v5uaPPK1j+cEzIWVk6JP2lqn0=; b=SZTMU+zry/Rlf5ueP6/hw1S8+Gsq3VwDjTI0lecvZr6Dl4/RFZVZlsAb 26iTpQZVObRQeYWy5tpd9cHXlTJPXXyE4WSbkbBOT3r/HBxo1Zlog8Tfs +uDJ/pNcgIiciXWDoC0tSSgEJZEwF7I9424e1GBg1rUlSTiiGcgkINqpY CADCejVpoY6OggfYJ0cIyvzDcbvK3B5EzUpf3bqcpIDtfY16biU8jJpbV g0qFXO1OdtlOWkT9sSmkelBKRe82QrSM4JUphxunaqWeNVf+sAx6JRorX h/WMBBjTQUpxlV4oRaDlwfz3DGxJsHM8pGTcXZKgfTTsYZYbXBFYBV8k5 Q==; X-CSE-ConnectionGUID: OE9ZEsEaRUiZAIzlhukNKw== X-CSE-MsgGUID: 2psdovjzS9+m5cBsr0IeZg== X-IronPort-AV: E=McAfee;i="6700,10204,11445"; a="60965518" X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="60965518" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:35 -0700 X-CSE-ConnectionGUID: DxpkVr/gTci9mOmfgBuWFQ== X-CSE-MsgGUID: AyllnkXNSBKuYYI0sIMVwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,318,1739865600"; d="scan'208";a="147660740" Received: from orsmsx902.amr.corp.intel.com ([10.22.229.24]) by fmviesa005.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 May 2025 05:08:35 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Tue, 27 May 2025 05:08:34 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25 via Frontend Transport; Tue, 27 May 2025 05:08:34 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (40.107.243.48) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.55; Tue, 27 May 2025 05:08:30 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AX4E2SYWem9KTj3mavhDTgmSVzr7mq8MkE3UKu4tpl9an5Dks9ycsTJm8qyo7KYv5usfmE2mGeruwOO0ipN8ImQIsmxdKe2E+zKqpp1CjtjXwpdiQA4gukwjxohVHkToxW7Mlhs0G806Msw/ZOSvMnEiki4Rczi+J+gLpaocs9nfKBYHQydRuLyFx5cDMKa7p4VQSU4t3Ue/+M7LE2+12goKeHMN7zEpuSrjln9wvAADWsMhh0VVrsJ6wtd+8MfOnTlkXMBqHshEsDrTfZj1fG6mTEFnNlBcQltFnAij5MorRrmjGYFnrUlnNXldRq9dNGHmkYhQW4hFjIstgkA9kQ== 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=1plmEqMqpV8IgipC6AnDhVqIl4Yt7pMfRz3yMnlU1nM=; b=EBG6uDHSPvfmgNb5VObtP0/aF2v2EqmqCM/axyjNMCnrU2ZV+DXqJJ0sr3ON0sn0yk1pjv9j+tAYERvxkp3t6p99giZPixVXkQ4i2FvKhZxvvytzOroy7E4Kb43Ink2SV0hrlxJPenEwmGX6S3U08jTk9V8mwCQ4j1v+pV+FpAZ8vWZXEcVsDgkGA4VvusubMYXk7O846JnIgDKdsYb7sDNvnj4SllnOYJJmWo8KMuGnMC0m147MAf8JXgTVDhpXy4WMN5iHLWqEPEtsVe7p0wp3146/Lx1X64sb6San2ZBWWB7Ca4YrqKT0X/+mzAGKoymNgGyxyeJTEFqmDGgFNA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) by SJ0PR11MB5918.namprd11.prod.outlook.com (2603:10b6:a03:42c::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.22; Tue, 27 May 2025 12:08:28 +0000 Received: from DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39]) by DM4PR11MB5373.namprd11.prod.outlook.com ([fe80::927a:9c08:26f7:5b39%5]) with mapi id 15.20.8769.025; Tue, 27 May 2025 12:08:28 +0000 From: =?UTF-8?q?Micha=C5=82=20Winiarski?= To: , , , , "Bjorn Helgaas" , =?UTF-8?q?Christian=20K=C3=B6nig?= , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= CC: Rodrigo Vivi , Michal Wajdeczko , Lucas De Marchi , =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Matt Roper , =?UTF-8?q?Micha=C5=82=20Winiarski?= Subject: [PATCH v9 6/6] drm/xe/pf: Set VF LMEM BAR size Date: Tue, 27 May 2025 14:06:37 +0200 Message-ID: <20250527120637.665506-7-michal.winiarski@intel.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250527120637.665506-1-michal.winiarski@intel.com> References: <20250527120637.665506-1-michal.winiarski@intel.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: WA2P291CA0037.POLP291.PROD.OUTLOOK.COM (2603:10a6:1d0:1f::17) To DM4PR11MB5373.namprd11.prod.outlook.com (2603:10b6:5:394::7) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR11MB5373:EE_|SJ0PR11MB5918:EE_ X-MS-Office365-Filtering-Correlation-Id: 0601f2a2-35c7-4cdf-d8a3-08dd9d1730b3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?UkpGQVZ4VExWV2l5RmhwWjVGc1lRVUhXSDhVNmxnY3JVVmpJMnVXUFFRWHgx?= =?utf-8?B?N2krcVg0bnpNRkZsQVI3TDBrakRrTk0yTmFOaTZpVmt3TkJVbFBWUU1ZUWR2?= =?utf-8?B?M2JscHMwMi9HNm1iUXNrYkpXSHRHOXNLcVdiMWhOWFFvbEJ2NW5xekJCNFJI?= =?utf-8?B?akZZQi9IQVJ0WWRhUDd4OHh5MHh5bkFxbzkzVXJVT2I0bDBYeGlMNGpGalp4?= =?utf-8?B?eVVJZ0QrVXpMNFFvbnZMSjA1SHZhZ0EvMTZBRTBkK1lTbllBN1owOXNZaTJ4?= =?utf-8?B?Wi9ZNWZNVmFIZXBGajlQZ3BLcEVlRWNOc083UzBVdHg3SFYyS21iLzJmNFBJ?= =?utf-8?B?MEFGL1ZLamxBd251T24yWTlIRmZuU0UzSnlpMTdQWmFMMUw2OEt0NWxxWGNC?= =?utf-8?B?dVhKWmVlLzYwN29PMSt2eEtadXQvTUVmYWIvT25rMmlJQVVnSUZTSGl3RVV5?= =?utf-8?B?bGRpbVpvZ3UyQUI1MHkwYWRaNys2TXFzempGYjFrMExnTXJJektycXh6M0dV?= =?utf-8?B?YldyWXFINUM2STYzby9iRWJFYlEvcHordlNJRWkxQVhNRmRzVW5LaUNhMEpI?= =?utf-8?B?dkNCV2EyT3RTS21zeWRHM3FoWEFqNFdFK2pQWjQ4U2xiTGlrRVk0QUd3NXpH?= =?utf-8?B?R3Q3RVF1SGZTUDBZUWVHcnZIeWZ5NDZCTDNkNDhXZzFtY0dwNytoTGU0aFB0?= =?utf-8?B?NE9rdWczUXNpekFMV0pBRyt2WE8xcTV0cFV0L2FFb0dGYU9oTmlyZVZOaGli?= =?utf-8?B?R2ZzYU51SWExelIwaTZ5RmJzR25jMVpFRFVQSEtydE9ZWmplM3VhbVFIYWR6?= =?utf-8?B?S1RYbGVuWlRkc3QzN0xvS3BEcFgzS0ZpV0xOL3U2bi9sa1BVNndhWEZjL1J3?= =?utf-8?B?RUo3bVRYMENCOXpib1Y3dnBIQmREc0NpdGs3TmpYSlkvOGVmek5MeHJGM0VD?= =?utf-8?B?ekJUWXFTd25rVmJabzdXYUs1Ulk1RGJXK1F6Q1Vxcm41Vk1jZ3dROTBxSUth?= =?utf-8?B?czV5ajBRQmE1eXpCNDVNNlJvd0EyWUFlYi9KYmNvVmQreHpNZ0sxUHlkb0lP?= =?utf-8?B?OTZGWDZDUGdIUG5CTEt2MDZrS3hMOWZGeHNoTDZWd0VDUk5FeWZGS3JldlJq?= =?utf-8?B?WjhheXV0QXNRNUhGZ1hkOWJxaVNSRnZ2cm9ObVk4UHh6bFpScTVFNXB4ZTVS?= =?utf-8?B?dWVYMDhnRGEvbThybFN0QWsxUFd3WGJBQ1F1ZkpqL2FzV2t2elI4azRsVWFN?= =?utf-8?B?OW9SWnhOcFpmVFV0TXJVanFBODIwbDJXaGRkRm5OWmhzRmszM0xwcG1RY3lP?= =?utf-8?B?ckE1MFNRWmVNV1JVK3A2YTI1WGJUWmttYS9jWjB6ZmVUR3o0QjNyYTczWUxL?= =?utf-8?B?Z2d5ZVdyNlRmL2JuMTNRYURmWTQ2MHlNRWhGNFNlK1ZRa1UyTDFPbUdxcVB0?= =?utf-8?B?TzJRc2lGazZOeW14SHhMdmd0TUt3cUZ5dGoyQkFURW1YSTUxSi92cSthVXZF?= =?utf-8?B?Z0VJZ1VyaUQ2NFJKekNoc1prV0ZJRjFLSjZvdC9lU0NmL3ZHeGNndmU4VEpW?= =?utf-8?B?cFlPSkFuczBjTktwZll2RURObjN5Uk5vdEhHTkpMemZ4MTJUc0drY1Vtclo1?= =?utf-8?B?ZXM3Y24rc2gxTytVdHpBa3hTcnJqVW9xTm9yekZZaFFDWUFJUUtTL2JEUFNC?= =?utf-8?B?VUhiRzIrb0x2V2tZUmZnVmlRcE9CNFQvNlRxN2Ixb3RwdXp1eHBKTnloa3pO?= =?utf-8?B?WFJOM2VPYjJZdFdrMnZrdGJiRENrOXd6WE82cTBUdm9nMWRhWDQxOUZIR2tw?= =?utf-8?B?OWd0SEpYaFVMajlHNkhyR01RVXQrNm1ud1RiWVJIMTlHMUVRODVtVU0wWWFx?= =?utf-8?B?SEc2L0xERy9zcDl1QkFwanlqb2NiUzZJcXlqdUxnQVJSOVpWcGJnSDh5SG1Z?= =?utf-8?Q?ermOYEyPQOw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR11MB5373.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VDZhUmMwUnFCYUh2TFhrbzZsMGRRNGRSTlJ6bzRKVzBmaVJFUnljbE94WmFj?= =?utf-8?B?R1d6WFBCZCtJVHA2b0VFWkdGcWpydldSTXN2SUJUbE8xSGNNcG84OHorSHdK?= =?utf-8?B?aklIcHZYenQzZWtFTlZsbWxoQ1FDVndIUXpKSXhXZU5hRDdoVWdXbjhabVk5?= =?utf-8?B?TUE2N2VBVlh4aHdxMTd1S2czSzZITXBBWDFVNXliUHFKYndIRDM5anJQeWxa?= =?utf-8?B?UEJVMHZ4M0lTRGhocUN6MkxtVE05Rm9tYUVqR1RybklJOS9NRmpYd1lLWnBB?= =?utf-8?B?S1RoRUp3ekdpbXB5SHhrY0VzbXZWSkc2d2dOTjM5bzkvbS8reDRBY3k2Ykxw?= =?utf-8?B?WUI3dXI3ZnoreTVvV0pKNjZUV1JHSjR3MVlGdzJ4U2hVOEZ1a25MUWpraUdh?= =?utf-8?B?dktrbnpZMTg3MWNKeDdCUnUyMTBEMXJldG5lNEJ2R1FsT29yY2ZhQmZYcDZk?= =?utf-8?B?T2FPbGl2Q09RWmh4SVNoWHZDUncrVld1blBReDNjaE12cUdFT255RXZGTC95?= =?utf-8?B?YU03STZjQXNBeVhEaU85UzRyUXlwbFU2ck9CLy9ab3U0ZHZiT1BQWkZlTGJs?= =?utf-8?B?ZGRKOERmS0Q1c2UrejJocWZMcFd6WXJ1ZzJDYjh5YVdIRlM4ZEVSalRRcXIz?= =?utf-8?B?LzNtcXJVTG81TW1MdTluUjY1aE5obkgzYVYwZWxlMmw3VUZpWU5qRlhDTnVk?= =?utf-8?B?L0UxdTV3bWRhQXN6SDBDNFI0eW5HMzc5WnZOMmNQRzByT0tnQlZrKzZqK2Yw?= =?utf-8?B?SkF2LzQvNm1EZDNDR3gxSFZ5RVY4dCtBbk05SVhTMUd5REhTVFVZQkk1Y0RI?= =?utf-8?B?a3RMUjRjT0t2Q0VNQXgvRHQrdUoxRXExSkFCYW9aV1ZQcCtxT09GalU2eVkr?= =?utf-8?B?S2h1S3BoZFREeGRkR1RVRERyYjA1NTBTNWN6STZhVDVEcHBIWFpqUEh5VG5Z?= =?utf-8?B?aUV6QnIvajZkUjRxSkpqZTAycUlzNXhuaDZLWVFndFNnS21aeXZ4VzVIWmRO?= =?utf-8?B?SWs5TlNTd0g5SU9yNmdoQkd1MUUyQjJ4ZEJOVW1PMEpJNERqQ0VleUZpbXlX?= =?utf-8?B?SXdoSzJrdi81cHM5cVp1d3FKajRCSVFIeWE2dHhMeFdHUjYzcmV4RVA4c2U4?= =?utf-8?B?bDQwVFROT21nbE1PTXdkV3pMYi9YNnl5RGhDaE9TR01NTmpSM2FxT2xHNnVz?= =?utf-8?B?L0RGMjNEWDJBVlpGajEyVzB0TjE2TWlHUlgrWXBzUklENUs3TGltSjlaL1Rw?= =?utf-8?B?amkvOUlBSE5hL1Y4VlY1RmpteXZiMHVPdWF4THE3S2lpWnJoRFJvN2FCV0hM?= =?utf-8?B?d3R1eWdpZDdUZnJOcWduVnBIcUJzcUhhNXVHNmFzcXZGZGpkYXVBS3BhS1dW?= =?utf-8?B?TVp5SG1GK21JSE1OZ1Q2dllBQ1EvVS9CK2NkWUcrMEFlR210dkNvZUtwOFZQ?= =?utf-8?B?N3ZJRG1MYXRpWmR2RGhGYUxPMjRUcHFKVnhHcSt0dVMwZDZaNTJtTmt0ZXp2?= =?utf-8?B?dStFM3AwRWJRM0dSYVJWalVxeG5Na2I2NGwwQTlhaW1wRjJOczJ4eVU2UkN4?= =?utf-8?B?cXhRYVhXTDcxTlZmcVVpVmVzaS9kajlkUUtLNjdCNzRCeXFaUndRdzJuRVhR?= =?utf-8?B?Ung5dmI5eWJnSm5Rcm5iemlrTWZuRUltbGU5T2pvai95Y2JpY2hidEZBVlho?= =?utf-8?B?amlJVlVzRFQyNGMvS21vNnlYK0g4QWd2eHVuWEs1ZUh2TmM4UVpRMnpnZFEx?= =?utf-8?B?bVY0cFZnb0V0ZWpZMkllUkh1Tjd6YXF6NHE2NW5PRlVPWFhwdlN2VGoxbWFa?= =?utf-8?B?dXlRc2Jqb1phNHh5RnR4MGcyRGZYV3BvMjlOQ08zeHJkRHpoWGMxeEtMWE9J?= =?utf-8?B?TDErN1llYm1kb1E1a3o2QWR3TjlwdzlienA1R0NRWFN1MFE0OWlPR1lLazdQ?= =?utf-8?B?em1PZlFDd1V6K0dWQ3RxZTFmTEliVGJMRDFyRG1Wd1VVaWJTRzhvWkVhb2c5?= =?utf-8?B?OE1EVW5waGR6Q2Zvemo3Q1dERmExV1FPSUhWeVlPYnpYZThRRzlVUXJDeEhk?= =?utf-8?B?TXdBZThuNTVPcmVHeEUxd0s3c3hxK0dEMXZubXJwdGExZjZpNDgwZ3JyU0J3?= =?utf-8?B?L2FOMDd3YmdkaXdJam9XcFIzQ0UvS0EzMTlTS1ZDaStmRlZZbm5qb09WeVI3?= =?utf-8?B?Wmc9PQ==?= X-MS-Exchange-CrossTenant-Network-Message-Id: 0601f2a2-35c7-4cdf-d8a3-08dd9d1730b3 X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5373.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2025 12:08:28.5841 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 04xr1WaP02meiKTomvyJFqrV2D0YW2jui6j8ZR8vTM2Ilheu1FwVOb0Sbvi77dFUYbZng0R5IfL5egDVEq0ks7LK4BH+HRcw2R/ZxNOy3tw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5918 X-OriginatorOrg: intel.com LMEM is partitioned between multiple VFs and we expect that the more VFs we have, the less LMEM is assigned to each VF. This means that we can achieve full LMEM BAR access without the need to attempt full VF LMEM BAR resize via pci_resize_resource(). Always try to set the largest possible BAR size that allows to fit the number of enabled VFs and inform the user in case the resize attempt is not successful. Signed-off-by: Micha=C5=82 Winiarski Reviewed-by: Ilpo J=C3=A4rvinen --- drivers/gpu/drm/xe/regs/xe_bars.h | 1 + drivers/gpu/drm/xe/xe_pci_sriov.c | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/drivers/gpu/drm/xe/regs/xe_bars.h b/drivers/gpu/drm/xe/regs/xe= _bars.h index ce05b6ae832f1..880140d6ccdca 100644 --- a/drivers/gpu/drm/xe/regs/xe_bars.h +++ b/drivers/gpu/drm/xe/regs/xe_bars.h @@ -7,5 +7,6 @@ =20 #define GTTMMADR_BAR 0 /* MMIO + GTT */ #define LMEM_BAR 2 /* VRAM */ +#define VF_LMEM_BAR 9 /* VF VRAM */ =20 #endif diff --git a/drivers/gpu/drm/xe/xe_pci_sriov.c b/drivers/gpu/drm/xe/xe_pci_= sriov.c index 09ee8a06fe2ed..4be566331ee15 100644 --- a/drivers/gpu/drm/xe/xe_pci_sriov.c +++ b/drivers/gpu/drm/xe/xe_pci_sriov.c @@ -3,6 +3,10 @@ * Copyright =C2=A9 2023-2024 Intel Corporation */ =20 +#include +#include + +#include "regs/xe_bars.h" #include "xe_assert.h" #include "xe_device.h" #include "xe_gt_sriov_pf_config.h" @@ -111,6 +115,18 @@ static void pf_link_vfs(struct xe_device *xe, int num_= vfs) } } =20 +static int resize_vf_vram_bar(struct xe_device *xe, int num_vfs) +{ + struct pci_dev *pdev =3D to_pci_dev(xe->drm.dev); + u32 sizes; + + sizes =3D pci_iov_vf_bar_get_sizes(pdev, VF_LMEM_BAR, num_vfs); + if (!sizes) + return 0; + + return pci_iov_vf_bar_set_size(pdev, VF_LMEM_BAR, __fls(sizes)); +} + static int pf_enable_vfs(struct xe_device *xe, int num_vfs) { struct pci_dev *pdev =3D to_pci_dev(xe->drm.dev); @@ -137,6 +153,12 @@ static int pf_enable_vfs(struct xe_device *xe, int num= _vfs) if (err < 0) goto failed; =20 + if (IS_DGFX(xe)) { + err =3D resize_vf_vram_bar(xe, num_vfs); + if (err) + xe_sriov_info(xe, "Failed to set VF LMEM BAR size: %d\n", err); + } + err =3D pci_enable_sriov(pdev, num_vfs); if (err < 0) goto failed; --=20 2.49.0