From patchwork Sun Apr 6 13:58:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Courbot X-Patchwork-Id: 14039352 X-Patchwork-Delegate: bhelgaas@google.com Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2045.outbound.protection.outlook.com [40.107.92.45]) (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 3968B21931E; Sun, 6 Apr 2025 13:58:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743947908; cv=fail; b=Syuawb8zV5R38YYavx5f6DlMi/EtBqfVvUKdzhnMDpK/SyUWO9K+xZoPQZJ9bstKFnQUhrO1u9wcmyZJehbXz9a6eU2w5VBdgbVZ+HcQAreV76Sdysq4oyjZf0mhcNPsfZ6BPFjZqPd45/GpZDHzf6cTHf00rvsiP8R0CBDm0pU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743947908; c=relaxed/simple; bh=pASRsEDLBhpD7zIL/ScwJG/SfOD6EAWQJBbzpS7BlUU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=cMnU89JuqghmhyupEYet5Nzlrt+sSNsiXXTvFSLAC25JNnJsH2GmLFsgc+dZRuokYzt+K1/duPyymBQ8+B+2uE5m3+NDt9WiGVE1zp96oT9liKsJS02fL3cn8qzAwgxNg092Ny2mvw5tnSl+bbgBBLvvAlVTYIcaX4TGW/FSW38= 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=QVR+hqUf; arc=fail smtp.client-ip=40.107.92.45 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="QVR+hqUf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=E44xrc0k/X0UnuFTqTtjd2Y++QNIsHYizi1V2RkFvPzKy+DlOU6EUI4hMLzebn15RDoSmjiRaC5Pza6qUnqpNaIX79T1k0V/cTyhfPh5viIuzT0qO+qNA+I0nksNSD9gx0LVC5wFNWg1TMsv+smwaRH5zjTtFZNSCNJ1kUFBVvs0wfkR1z1xtOt/DQTrn3/OCkPsC+6jTXqnsPmON9SH9EkcdCtUmRxEvzFoLiTYfp/HFIJ/HYL7QsuxtHQXbT+/c0UX1gty/vSwdjz6J8SbHL+lNCXAiNcwNCASSB6OEWi7OQ0u7jiGnjI+miS0BCtgsXPTe3Ry2MGiESSKNzmB6w== 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=2wN663O5IG2V103W6KejVe+94Kw913rm56VcqpJ/b9w=; b=gymz1woI+tHA3mrn8CHmcdPV/ycr9fARMj5I5CAIhNybvoDBpelIScJk1hfUIutlXe7zDExu66HyCeGoaPHyhuTRQ0GJREp1BN0daIkacnLAJKbvmCFayomNU8MLjRLAiz8926lLfaSBLPaAnggMJTLY8oW8rRgII1f3HYx9+K+pjUB2HA/D6YKZamNNRjuyh/KctDjhS0XVSJwldxYchO8yBTHv2QEipasj/FXctXpvGO2BrAxRMyyGtAENq2rWcHHmHL0I1faVBylJgkrPlgEddOR2oPzV4DHlYNYC9dn4VLdIVnXLuVpoCu3x5AcCfFoQp1S1AqUc0SSiMgrD9A== 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=2wN663O5IG2V103W6KejVe+94Kw913rm56VcqpJ/b9w=; b=QVR+hqUfaBGrT5vjefkWE0x4hnHwkLF481ceN0gu4UotnckhwSrn4WKdDRnABnlo4SAVtazSMwSsrTqNjapwtnChNFhpWBdKGgZK04BVqSSVFYhsRB8/9v5Ud63ivC1yWvyJTynQHSYfZE+UqnVCEaAoBXHjOkrt+ygoBfhLcroulddWsJ+6CN/3oiPNhvOta2oxFgqVqu2EbV9kUFGqorJm7V2dgm0FmbaR7uFDYOaJf25P5tT4Rs2D2gCsay4iuR7XbMaqtSf5eVxVWFggTUyho5kZ9cH9hrMKLggsmwIwGukgETAIcj4YFZTyS3yrZrielAExNcGvlrfvoBmeSw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) by CH3PR12MB8403.namprd12.prod.outlook.com (2603:10b6:610:133::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.29; Sun, 6 Apr 2025 13:58:24 +0000 Received: from CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::6e37:569f:82ee:3f99]) by CH2PR12MB3990.namprd12.prod.outlook.com ([fe80::6e37:569f:82ee:3f99%6]) with mapi id 15.20.8606.029; Sun, 6 Apr 2025 13:58:24 +0000 From: Alexandre Courbot Date: Sun, 06 Apr 2025 22:58:16 +0900 Subject: [PATCH v3 2/2] samples: rust: convert PCI rust sample driver to use try_access_with() Message-Id: <20250406-try_with-v3-2-c0947842e768@nvidia.com> References: <20250406-try_with-v3-0-c0947842e768@nvidia.com> In-Reply-To: <20250406-try_with-v3-0-c0947842e768@nvidia.com> To: Miguel Ojeda , Alex Gaynor , Boqun Feng , Gary Guo , Danilo Krummrich , =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= , Benno Lossin , Andreas Hindborg , Alice Ryhl , Trevor Gross , Bjorn Helgaas Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Alexandre Courbot X-Mailer: b4 0.14.2 X-ClientProxiedBy: TYCP286CA0293.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c8::11) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8403:EE_ X-MS-Office365-Filtering-Correlation-Id: 3e9baabd-4179-4b3f-552d-08dd751318f7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|10070799003|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?SLAkwNqGwCvrdjF2qM8WioGTZh0xy2E?= =?utf-8?q?I4hyFhqqlaFE+VyH2nWG84iv9X6sh46Gz3hxdmcqox6S3XH6NkklCaKJbd/oSXMPx?= =?utf-8?q?87UKq/rkYN0rk5Jl0HzZnNbYQo8WaN5bXZm1mIWTuL6Ia8OJd5OWxYq8hMbg1CFzK?= =?utf-8?q?XkSYdejw/v7GXh999lkJWNZ4CSAoOBW2yyfIaiQz2u1F0Vw7THw/OoH7vv+zPInt6?= =?utf-8?q?tpSGojELf94ayPDzfiUiBIcQMKFR4Wv3zpOxjUMJD3K3yWHNP5A04pg+VrI0EhNYd?= =?utf-8?q?hriS3oIVk/P9bpzFeGv55gBWlUHl4SDKgeraDJt3r8/QnfUc/c3nwiHe4nD+Suke1?= =?utf-8?q?tKE4nmXrMBPwRM/EbvAk6WBcQO3+fBE3S3QhmkoDsxpx916nnGxG1gcrNIQmYQETH?= =?utf-8?q?CDaKYix2Tu0C5VuqFi1uHPkHCU74hdSa63jGf8TKFhCO/kuVlVqHiR3iT9RA1Ukd3?= =?utf-8?q?ZE+xUWhOijbUmkOg5J0aG7s/ytRV0gEJUUq61/kPe2rPOo1ekvouEGdGwxsu6S/LQ?= =?utf-8?q?mDKd0jV/0KMb65XzOWMn9CiUsLCLOSFDCFTtmoioVEQTuqCqnxwKLh+6LS5BhWpGk?= =?utf-8?q?Y4rIerHLl2YjOj3uZgT3VtUKyawzweKXw9UZc3DJQZin62Ht3MWX1FuDFXER6m9BZ?= =?utf-8?q?vdWrP4IFnosu+rXqOthD7MuMNNdDLL+L4o6wHPJ/+gJIr/pnF9j2K+7GXhY93ZLuB?= =?utf-8?q?UjZ+QaNcbtegtbB7Z386gnKS7uVfa3JiV2cRMv7pb4e1nMcnZtXEzSFvgv852Pgq+?= =?utf-8?q?jAY5uK7gg/dSCWd5eeH/OLCTiqjERcpt6CRJy4ecpX72TueAEVAOLiT7s2/1qkNts?= =?utf-8?q?+AFnHF6XMLP5cgNfsOENs0/KBrYcEyGiraUiUuridJx2eB+Qqda1pnI6zvG6Lxyur?= =?utf-8?q?BuA0bPTSrsplTdVzCHggezggg5sWGir20d7OcxQ0xcTuezOz44aiJIFQTakZL7VRJ?= =?utf-8?q?6frdN3eR0N2kiwRv8K7eHGafJUrzoGjfltTKF9TcpFZsXp8kFyltm8GEJycRVzPdc?= =?utf-8?q?2HXIGhVh6HArzxmc1AllsQ2M5+3EC546X/lBS+ZqUpvox4aybr9OpUWlxM3YHHB4T?= =?utf-8?q?KXCHoTUi6xENwJbcCsoLBuOs14Zzlvfl69YtRguLaqcr+8tuLzFNmaS/nqP9B5Vz9?= =?utf-8?q?sdavVh+ZTzmQ/OODc5xNNqzrsy3B3ai+4OJeZ/ywYKrBApe5FphEFTuroeDC78kYC?= =?utf-8?q?2j3Ary2esWfnNzSKpk5bZ1hlRbLYb+TJYSakPJNYIlv+FbXbDMopDbxE0krNu4yJa?= =?utf-8?q?IgQAgvQpajtEy8BR3blYyoA1gE+Yvg62Rh1fLNC4lLuLDH23cU0Su8HRq2wdUt1NR?= =?utf-8?q?/qwRJMMxtykMTmWRKVL2FUk0JlUxWGnWrVzQhBX09349CZ9Gf1vcZj0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR12MB3990.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(10070799003)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?IOU0Gnzj/iAKd2U+6gk+Kjg8RCxc?= =?utf-8?q?ueqis7zTy30pcS4TwYcjya8ChMzJXidBgIeBRJL2Uf0Jluasl1hXXR5Ue51bGNIer?= =?utf-8?q?L1uUwiyIeLbYvh4ODWEQhI0X3JB5x+p+pN7EQHG12miEcvDt1Pdm3lWbqpiSSoJce?= =?utf-8?q?YnkxL9hoT86t/T8i2Wbv1XPMRVmuStpd7QqDFT1A/R8+Du3VBctDypnBWFbG4C1FO?= =?utf-8?q?5oY6AV+DbB8OihJpZKJ0kEVDFiL8sakaTTPwKFE+zQqwA/KnBJT0wrWqiS+aWwHdt?= =?utf-8?q?kBpiGHTwGsp7PWuK7khdjMP81r+oDKAeHwxF0tHMVApPShnsLRv7gBsl24EnBidHR?= =?utf-8?q?FWmH/ygF7BokTcfe2ptIwixQY+SfNjQCPXs3mSyOQRVCoMb8A+w/iRktfDHeoMDwQ?= =?utf-8?q?s82zTZye8G08Ov4p7TgSKjDG854itPsfoWPJ1ZRlVoZOeHrlthYA7xpWRPlijFv9Y?= =?utf-8?q?IUBTHpjh9X/6pHDvuHPCti9l1AcssucYuiWO+gZXQq4vf4hqa9WKJSnqGTkSqFVds?= =?utf-8?q?MHFtxNP4riVMXGah3RH6/ZmjhBlpilXq4vktFgU+H0UVEgbjyjGv0ezZKj/it/tnZ?= =?utf-8?q?2ouRM+VYAXi9j3cbtEBP/lfjt/jpzUIBcvTo+t+uawPhJv4JvALZfRu8d/m58urcn?= =?utf-8?q?7S2ULTbhdvStBnSPKDqe4/fFIurrz6Zk0QKTGQ3GVEoeNWSQWD8/td1tApx8pyWqD?= =?utf-8?q?+o8iQDvnFviPmb2+ZTKQACu5LCg4VsQMHWHA6yaal69ifV8pICnNMBqQqm3TT3zGY?= =?utf-8?q?mXEP7CRtSE4sYP0TGTDasqx2d9oeqji6RA++SPFKzwOMO8rDJmoSK6BSzgPvpnwV6?= =?utf-8?q?GF5FMqRIpuRi83Vl1EfNQ5r66OZM33KYiOfB4m8+wsBCHrOAwUmitlE+2NkH3rqQD?= =?utf-8?q?fFHRDlNdeCeIh077/z46zcRpP/wO7YNPkB8EPsu663V3CAABLBJCNKtTfyd2oGWTz?= =?utf-8?q?nGjXqKJByCc1z0I0mcZohUGbeV3XaMcfsbNRXlGs7WiKiDi6KO82TfuH1koDAbZm7?= =?utf-8?q?LNI5cdQ0jT1WJva3QvOK0ZnLi0P4msZr3xbnQyBHydgK0mkH+/1741HQk9K/a4NyK?= =?utf-8?q?Ql5fqSIRg1WvB4gvQKNlId5D/glFSUp5LUgbbus+S5Nl1+FQY8IyBoHcyc8XYI+Uu?= =?utf-8?q?1uYU1ZFeL8/dqX5z8P8PK1AQnT2Ze9ixjxovXZuEwajpoNxkBTAhk/UZpyM1Iz39d?= =?utf-8?q?Dt3sOj8S7F1pMvnnqVSdhXiDbjfq2AYLgr6c3L59pD05cXvdqZTFreuNMkkutxiwD?= =?utf-8?q?v+d5FWOn0X/J3XT/RqAyLp5XGcLQwK2gZyD4i+VvIqYrdZNYHt1cxrZyy/qmCsYY3?= =?utf-8?q?zm9QMAcdwpAmFAl3IqQwgnPRFjP17CMLa0b63E3qpbpW04v5jupt/CPwAE/5CQwuZ?= =?utf-8?q?6oDPBITlATtqG9DT3PHU1CaqX1d3Kioj1D95AFg85Zs/hXjzgvKmmuP7HZRCQh+J8?= =?utf-8?q?Bht/dSv2g8f0XOTcLrmFq9DWYloI5aNE1DhSrl2nYonKixJAAjLPM6+CKkkgeRt7L?= =?utf-8?q?Vz3MfPalFPKXX6KYlle3IrHeMDsbEb9NYE/mOE6CaRpyV5SzY56MVflalolEhj+Gx?= =?utf-8?q?UGgc5f5i+8s?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e9baabd-4179-4b3f-552d-08dd751318f7 X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB3990.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2025 13:58:24.1315 (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: B50Y4zl8pc0ECI7+fruLRRR36PDjwJltcLJYHAaTSFRNVmMeHbZlwzCwOh37K7tEiyLDSIYiEKYR856UQdwDIw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8403 This method limits the scope of the revocable guard and is considered safer to use for most cases, so let's showcase it here. Acked-by: Danilo Krummrich Signed-off-by: Alexandre Courbot Reviewed-by: Benno Lossin --- samples/rust/rust_driver_pci.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/samples/rust/rust_driver_pci.rs b/samples/rust/rust_driver_pci.rs index 1fb6e44f33951c521c8b086a7a3a012af911cf26..f2cb1c220bce42d161cf48664e8a5dd19770ba97 100644 --- a/samples/rust/rust_driver_pci.rs +++ b/samples/rust/rust_driver_pci.rs @@ -83,13 +83,12 @@ fn probe(pdev: &mut pci::Device, info: &Self::IdInfo) -> Result>> GFP_KERNEL, )?; - let bar = drvdata.bar.try_access().ok_or(ENXIO)?; + let res = drvdata + .bar + .try_access_with(|b| Self::testdev(info, b)) + .ok_or(ENXIO)??; - dev_info!( - pdev.as_ref(), - "pci-testdev data-match count: {}\n", - Self::testdev(info, &bar)? - ); + dev_info!(pdev.as_ref(), "pci-testdev data-match count: {}\n", res); Ok(drvdata.into()) }