From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010043.outbound.protection.outlook.com [52.101.56.43]) (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 0C697262FD0; Sun, 7 Dec 2025 06:28:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.43 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765088905; cv=fail; b=Bxi/F77ty7F1DOwuv9aRqnHSUW7dAX8o3CpBUD8Kzng4fEgSA8ofV49J2bHozld64Ws8q0E5jNCaTd2e1b/ZTscl/ZEzc7IPY/92RlqIuRSUyYdELRvDYiW/6sC/jdzWlrduWDegU6CcvDUc0vLRVuEzmZ3hGRBGcHLwANPgNLA= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765088905; c=relaxed/simple; bh=R/EYSFAoHabRMBfVsXpdk3cE6fdFwN8iF9PYQ4lyj+M=; h=Date:From:To:Cc:Subject:Message-ID:References:Content-Type: Content-Disposition:In-Reply-To:MIME-Version; b=eMtunrZjd+KmtvSabyT/Vmxum8v80GgBjfGVAeH/uMHkfCZOpXwZo6WGJB9BUyl46mzxTupEx5Evyn/aAkovao+wlOoo7Iw5yK6/7PY6XpfaWZjdOwq+KkBM4JGsLCJgZedd3iTOA5tcMGli2hHJiyOiodZGaZbfUuLleQPzXRg= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ZS0g6mxH; arc=fail smtp.client-ip=52.101.56.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ZS0g6mxH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qxoF9oLYPEeJMXerp4PlU9j7DEU2edGl2pHIOgTf0eGa8EwO+onkqJ8pXl+CcsYyknev6vMLAoK418EXxsWQOPOoV+7JQyD7c1BMZAactDpI/h5THPki/aGv2WNwMnyGHesirpDwQeS7UkI/FXS1E+Mps0V6BWU72nPH+Ppl5O99ktJpt2Kjm5h8USq7YQ7wdzRo5eQ0jTTRymWxVVzjIe+fWGvf+lV6exPlr+glQ/IXuQlqcfvKv33dpBDlmFFYTQXhFmCv94IC2pLVyN5+dKmBPGVgA/IirOEGioAbLhYNIkhNsjXm7+TErJzc3x4OecZISIJHVKQF0R4HW5ISjw== 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=Qa/jNLKoLiULtrauzhjFkqHzQUIuO6+n7QFbHPG6KIg=; b=tImDes4+r2fxHRA442r1iPxYDdLUr3QnMLy4MGofwPLsbQ7SA5SNtVRKvjAKHXIzpn8/OJFOsJieS/ilntv2a4fSxNhphztVikhVBvGE39GqWwf5IT93g6gWnn2ZvOXLLp0tFmzmlM05I5tQuQlRKZHXQoZtsKFkmHY92yDqUKd7V2KP9yPU/DbE93oIGVmXVzJygClc22eVFg9GGhpHe7JVZDVORW8xBPglnCjiI91hYmP9OxABb0lJNhm6RDO7vB5+nN7jkonj92IofbtfrxQMg3keZvzINIc6ypLyGJc1jRig6U8TPwwFULXvba9C/0OfOqeaM8k4Qujh3w+HLg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Qa/jNLKoLiULtrauzhjFkqHzQUIuO6+n7QFbHPG6KIg=; b=ZS0g6mxHLI/5JGiuqWTFL0WgeBDeYrUlU9rgn8dTFTLTgycrWuRBqfR1NG3Xdrn+RmdbRmZZaNkro6QaDkZQGRLucpSlpAz7fWAXhv/rCkjRvCp5cJrjLUMwUmN1V2EyVREksqF+eDwoU5A/j2HlBRvWUqOBA8TtgzxRCcNOqNgNMWiuqQ+4PIwKhpWUE4w5c6U1xtCyvfsLljkZyROyS2L5BCEB+2Uk4Jxh4kD4jX36SWJtbT6dbY57PCYibAdXL5FUgEy77yN1AigjsO9QgnkkWO5Xu70T9dZpgjFGXhhYh+qnBFWv6rXhrv1BSfDpcry6NWL1T6v1hiYbqBlkVw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) by SA0PR12MB4400.namprd12.prod.outlook.com (2603:10b6:806:95::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9388.13; Sun, 7 Dec 2025 06:28:21 +0000 Received: from SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91]) by SN7PR12MB8059.namprd12.prod.outlook.com ([fe80::4ee2:654e:1fe8:4b91%2]) with mapi id 15.20.9388.012; Sun, 7 Dec 2025 06:28:21 +0000 Date: Sun, 7 Dec 2025 01:28:19 -0500 From: Joel Fernandes To: Peter Colberg Cc: Danilo Krummrich , Bjorn Helgaas , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , =?iso-8859-1?Q?Bj=F6rn?= Roy Baron , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Abdiel Janulgue , Daniel Almeida , Robin Murphy , Greg Kroah-Hartman , Dave Ertman , Ira Weiny , Leon Romanovsky , linux-pci@vger.kernel.org, rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, Alexandre Courbot , Alistair Popple , John Hubbard , Zhi Wang , Jason Gunthorpe Subject: Re: [PATCH 1/8] rust: pci: add is_virtfn(), to check for VFs Message-ID: <20251207062819.GA212851@joelbox2> References: <20251119-rust-pci-sriov-v1-0-883a94599a97@redhat.com> <20251119-rust-pci-sriov-v1-1-883a94599a97@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20251119-rust-pci-sriov-v1-1-883a94599a97@redhat.com> X-ClientProxiedBy: BL0PR02CA0031.namprd02.prod.outlook.com (2603:10b6:207:3c::44) To SN7PR12MB8059.namprd12.prod.outlook.com (2603:10b6:806:32b::7) Precedence: bulk X-Mailing-List: rust-for-linux@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN7PR12MB8059:EE_|SA0PR12MB4400:EE_ X-MS-Office365-Filtering-Correlation-Id: 67252e7e-f77f-4443-5f73-08de3559d0a7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|366016|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MJzO2x/MDSwarysXt1gbUa32+LY/CIF3awoaxOIxQQh8H5QA8pE+0p8x9ND5?= =?us-ascii?Q?pMNeZj97D2JSosw2uYDgY0zi9Fvm/Q0LzuGF8EDWR6MdXuORarE6y/b2JL7+?= =?us-ascii?Q?MWMTzAk6I5SXrgBrTgab+wxR3XJHNZR6ma1kbzFBsxmYN1NhnwOl7gXPK36L?= =?us-ascii?Q?r7OXZDbbv52BH6PCmZ635QMb2ZVaQqWwnOjJXG3hIL1HIzusI0692Va9Xk5g?= =?us-ascii?Q?ctH3FFBmWwaICICY+Z4bQJiiA7gJ6+ZAF559xNOMFAe0MYquRzEnXxEPDhTt?= =?us-ascii?Q?gPwS3G42fDneVtWDJghI95Hv248RULX/dzduUeQ1AzA4EBNd3D9kCRlISmKZ?= =?us-ascii?Q?TZUDc5Fb/C+4L+7PsGiuLPooSIbbAAZiDoJOEIWn69Nd4cuOk1aNB3NI2BrP?= =?us-ascii?Q?Dolq1K0mqQvY2iqGjpjjGu7XBEyGmZB/8IgQKX7UIWdpBlQZyoiN4hr7eg1S?= =?us-ascii?Q?+CMkOKgd24yVu3Up9Y3sok7xm5P5IgrrdWDTOT5O2YaUQNS0nrBROR0BohrJ?= =?us-ascii?Q?wml9CUSPwh9Ibyj12+lqIVb1C31DygoA/2nwvNVf7+YamE/ut7Vb49d1uw5k?= =?us-ascii?Q?VPSziyVkbTqRMfwmyimHheyjdHIJOEfoxVNzcdXHpk338OMQZGAdyeQ7BL3N?= =?us-ascii?Q?BwJ9ottXc8uaTgs6KRHBiFWvWIPSSWX47xf5IvgeKWIuBH7IQ3rnTN9/hn5n?= =?us-ascii?Q?/U9ih3Sj5Jn6R5wLAWp0PbqKRQLnhTZJ0jcPFF3r6vCCqxQnNa0bIX+wt5tq?= =?us-ascii?Q?U83H5GhGV3yZ8UgmG9UBnE9R77w3gB5P62g99KDZZuylAwoSWXRAq/VslcUP?= =?us-ascii?Q?ke4jbusgL0K70dOIRY2QizmhiiKx0vB/nknH0dF9rJpmfEvcGRLQ8fAsSRl/?= =?us-ascii?Q?ko2VankhhJPF/egQ4RObx2V5f6yGmabqH3SIjlTikn8PFpra2VmvKujsqjyf?= =?us-ascii?Q?mUA5WeJ+yZ/IxlLI4J3+dZGJpt+04Oqvuyk7+RPbFgnCw3ViSrm13DjtRb8o?= =?us-ascii?Q?LnMjTrUUwq0JUqv665EOirC2GBwigCM9jU1HF64OujAP53R2zSADMHqUq0fE?= =?us-ascii?Q?XOT3GzoYbdioGbbW8gd6mEQoH0UReDJvAYdaxwG5rmkTdBBt9anhiP/RqFye?= =?us-ascii?Q?vbiQjmXiTgaYuZm1KFCm6H/rXvsyaaOC6TRv/OMggOdr6Smg/CqotdDU06pp?= =?us-ascii?Q?n5L9xX7mvGQhWrhTNkq5xpxRcJX4xC8aAqMcNRf8wiupTgQijtjlaKm3GGty?= =?us-ascii?Q?MYWi+4g8zpqnZ43No/tr31FA6kyy/PLOTU1UanBytCM66PON/JxTQAlCSJFL?= =?us-ascii?Q?6Nf2TQg+PiJwgMZzSCgGODotqOTsl9KJif6laKh6gzbXxhEI2WA6hqjJFCi/?= =?us-ascii?Q?jfyX7D6pZ9uVW6wAmivuxw4/jbFyw3saPijLIvY4SdyKI426m0yAaM0eiC3n?= =?us-ascii?Q?6osLsAIP3QsdiTNgiOFzklZaFsBhUgkNMJVsA80HnwNePZWe7BgmOg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN7PR12MB8059.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MgrMvaIM3+U4CwHNm7598u0/AuqHcEKyhtaGIWot+dwWRxoHlwc8QL3Sy2fH?= =?us-ascii?Q?duKvzS+L8CtZByGmnH0450o5hdAXIzMlbkNHku7L1P5AZnbrxKNPIr3RjoQm?= =?us-ascii?Q?bhCkd6gAoiYM9TR+n1j11diXiMWQW9OKK9hFka1+P95wTEs6qEIICjk8AlL7?= =?us-ascii?Q?nHpv7v7SlR/h8i6wrD8O6hG4ZEohJYRhG5ebb3W1Dva6NG4/kfolVn++O/E4?= =?us-ascii?Q?CZZhDYvoXBzfstxeZhJmYz30eO8xfgONHCqYPX+Eae/TLUPengwGXG8jVhbz?= =?us-ascii?Q?Bxwkc+qFqi1ftXgMLdfzlCJ7DcGSgK4OU6hME/8/5wzZdihqPef3qCFwRK24?= =?us-ascii?Q?KIn403tT2iWReTQvw95PnqgnfTVS0I0IvETmw+T9cKGwQeF8hoNu5sERmUCO?= =?us-ascii?Q?MA85Prph6cVXb0A4VAXLDDQh721EjV7SC4mBUW9KGdH/z1l/AIvMxqstrobI?= =?us-ascii?Q?vzuOmwB905iZNkMIKmzlCPbJ7s/xcZUWDsfvyBDznGlhWeTY70lRb0iVtKeV?= =?us-ascii?Q?1Jv7eyRTQwCBgCFAXYyf9EDyI8vD2hQ9YYzC/urrXqtvfaoGGGWHqKuy6b+e?= =?us-ascii?Q?I7but8T1bFDmjZW7/YW5ZYVAMiSuKVPepxA23cUYmDh5ztBaAkhiblCF1dHQ?= =?us-ascii?Q?zk48jShotDboclJPAAGlrBcTl9oquWx4+xgUQB2dvP6tfenyZCnMAbEgzHdQ?= =?us-ascii?Q?mYUPIJlNTbkhCxw9xf4w3VyRqDsfwjYSpS5heWHhyNx9Juf3XEYZ0Yj1Eztc?= =?us-ascii?Q?qcJhMcD7liQgTqlHPlrCIIRhYFhEh06tG+irU0s2U+5HBh1LCzLlhaDU27mX?= =?us-ascii?Q?AgmsWFU1q4NEAT60SQUzc/2zdxdoeTkQojfq3n1ie2e3VnJSCrzFSJGhwlXa?= =?us-ascii?Q?1xcDxJHEMIzCZtQ/Zxy9y7Lm+o0h3FT2mfFvOF2FMRcz8MFwgz9WyoO7WYBR?= =?us-ascii?Q?xZPQ57gyYmf90f3GqVaoGQkQPkQxw9ZpX/em4vLby0oehNdNcZI+5rUxrk9c?= =?us-ascii?Q?8sbVfqDp5mbj0URTjf6mQ9+H+jjwm4jAAYq1nSc4MsBJi9p4DmF3NqOtxrav?= =?us-ascii?Q?mY+fkC3uy6hFuZwItrNGqpj+ZT9cXkoAS49QBlnCG7cEjnH0B5sva9g02EG8?= =?us-ascii?Q?Cx+YUaXsuYN0W6hOGNvTVvCnkrQgtaJTmNX2vb6B7ONi9d9e2B7Bp89fJ897?= =?us-ascii?Q?MPEVTstWwBVWiZ+lezQD4hQViTsRpSpYDfQ4FrmddiLM5nBRw27j16U9qGmw?= =?us-ascii?Q?oYGM0Ytf34/Wxdv/IxCEA0xqDcqfkAfBWZXnf9O7v+gKM9lYqBXf2wkABqLy?= =?us-ascii?Q?Esy7VaFohbRrPynJx6Qg9Bq1la5hFv5wfSWqfBZxU97pmcMkjrPr5yV/wh3v?= =?us-ascii?Q?AUyRiCWLGhSWmXEunc13lwb50M1m0L4wVlLE+etJmktMi0yWSsTICGImfm3L?= =?us-ascii?Q?y2XGEWDtYd7zQfMy1dixCPu7DMuh8WvDsvUdO7wCVHvj2NDEjdHACOp5lYev?= =?us-ascii?Q?qDhTXx8nhcRaZ0u0mPgAHYuY3ifQcenoDdYy2JD1DIiR0HqpTLrJw1zBi0ch?= =?us-ascii?Q?JTzyr2ciOJtGtduvdhxYBr0zrw+W37WThh6u10jH?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67252e7e-f77f-4443-5f73-08de3559d0a7 X-MS-Exchange-CrossTenant-AuthSource: SN7PR12MB8059.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Dec 2025 06:28:20.9433 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Cyc+BREeNoTiq5Ba2+3hzlkZuSPEDYMbxC4BKVk7cU7hNaox8y0C3Jx9ZVdYiDYkvgCR3j/FGzsrcj8H8uHpJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB4400 On Wed, Nov 19, 2025 at 05:19:05PM -0500, Peter Colberg wrote: > From: John Hubbard > > Add a method to check if a PCI device is a Virtual Function (VF) created > through Single Root I/O Virtualization (SR-IOV). > > Signed-off-by: John Hubbard > Reviewed-by: Alistair Popple > Signed-off-by: Peter Colberg > --- > This patch was originally part of the series "rust: pci: expose > is_virtfn() and reject VFs in nova-core" and modified as follows: > - Replace true -> `true` in doc comment. > - Shorten description and omit justification specific to nova-core. > > Link: https://lore.kernel.org/rust-for-linux/20250930220759.288528-2-jhubbard@nvidia.com/ > --- > rust/kernel/pci.rs | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/rust/kernel/pci.rs b/rust/kernel/pci.rs > index 82e128431f080fde78a06dc5c284ab12739e747e..c20b8daeb7aadbef9f6ecfc48c972436efac9a08 100644 > --- a/rust/kernel/pci.rs > +++ b/rust/kernel/pci.rs > @@ -409,6 +409,12 @@ pub fn resource_start(&self, bar: u32) -> Result { > Ok(unsafe { bindings::pci_resource_start(self.as_raw(), bar.try_into()?) }) > } > > + /// Returns `true` if this device is a Virtual Function (VF). > + pub fn is_virtfn(&self) -> bool { Add #[inline] here and to `is_physfn()` similar to other methods in this struct? With that, Reviewed-by: Joel Fernandes thanks, - Joel > + // SAFETY: `self.as_raw` is a valid pointer to a `struct pci_dev`. > + unsafe { (*self.as_raw()).is_virtfn() != 0 } > + } > + > /// Returns the size of the given PCI BAR resource. > pub fn resource_len(&self, bar: u32) -> Result { > if !Bar::index_is_valid(bar) { > > -- > 2.51.1 >