Message ID | 20250406-try_with-v3-0-c0947842e768@nvidia.com (mailing list archive) |
---|---|
Headers | show
Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2061.outbound.protection.outlook.com [40.107.223.61]) (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 53D252E62BD; Sun, 6 Apr 2025 13:58:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.61 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743947902; cv=fail; b=Pnp8XWY4GMJuFR1D2gfz4UjIMqYEqyT3buUqDWBYW6DFoFWSbUqGEMT7IdeRgiETMXWR3PFB/5TgcamfDZHpcFL8Q9zWZK9LmzA4sGsKDP81jAl5IH+iU33/tYLpqwb703SWbYx7RMRsfaSToRElZAAQ1Ba7+VuAg2K1ePvZMxA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743947902; c=relaxed/simple; bh=UWIbdFuQi3vmp73f9NhorIVHLYVS33jxFe17CidCTaI=; h=From:Subject:Date:Message-Id:Content-Type:To:Cc:MIME-Version; b=aP7ZgERG+Xjr+koUjpsZ8mZXqQ0oVSA0tOy9EcvwpX7hvEpZ02alIWuzDmpNAnfQqJs6fRy2dLjRKB5iuK/LMumg/SwRAgZeKcQWnq8/9RyWIZkD9wIj2QrigiIvxWDeMtDLdx2m0tSHn0sOLtDYK0ZN7iaCZjszr/nnl98vWms= 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=pj/VN1Cl; arc=fail smtp.client-ip=40.107.223.61 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="pj/VN1Cl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nsXuceXUR9I/RalduavNkTWyNlBDrt9T1V9immzBIfrnrNxVLP3ckIzBtB2Wj3Vcp9gZHgFr8a/zlyb2jU+IxomXxmLy+Xj4p1MOaa8wvlU2vdB7nJeOJ27bsyp+ZMjGA9aEOE81fqbY1h0tMOIaMvogwoqKPVBFr8wunlV+LBngnbqwN53wSj1tEIIRas1MaBFrag4WubVKeAlRfy9ardqd6PHbGGykbniQvtKgO+2dDGLutuMBJpWD7PHNBC+NW40AqUmIFGHGh4rfbad2WMMC/fX9/xd1+a/KRncGDtoGdLLfskhwb6Z9gu6oACVWly/YahkRytrmiTmA6nAUdA== 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=5vlNAMg1m+8oKaaYsccSZ5Ew8OHMJUYKa/PclL1zvsY=; b=K6EchPDuCqP8REvKJ/QDHQncSBuZQCKO04pK7nBxdoKC+uPqKTTlTymRoso8GKCciUSzzNogEzRnU0B3SHQyvk0aTtLdkY6pd+jNAqi701D2zKT7kVcHJzQTZ7yHhHsUk1/RzUESqQr6uP4gyjtKTwf15zDQoJlp5B7okjZ4DSdlaqPRG62Hiyaw9XitJ4IMi7mQbi2lBqSXF2fyuotgZvX+wT0PNMCokcabyR0oWB2P04t0dwL1pHXVAySYdwFah8qefPh+Y/U11k8LqiUT60mHzABz2E6mUBW30dw+9ux8qOvUE8m59e7JMITYlaV9nYouEZL/fHhEElEdnji6KA== 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=5vlNAMg1m+8oKaaYsccSZ5Ew8OHMJUYKa/PclL1zvsY=; b=pj/VN1ClU+uKmZRjaSO9+We9On9PDeJLtLx+3VbdZHXugffRjX/updbf9wJYqvjK7qIp4uK2xgHEqLj5PEBGpbFy+upq1rov9MIPtHLscrNBvkEICccnE+6DowZT9uLtWA4CH0+fCBXxfoa9ff6+OyMgZjWA18I2S+UHu9FDa1df2s9Fk0uzBRijs/ZUf9wfT+AuJExg/kK+tLo43vKZaNKBa6EgaL9Xoapyx4/TLXJJaaCxfEnEEtTOlyUd1kTsi54R2fowivv0ucEMl6jB/izWQgNessTROJNVHO99DCOj7Zuvte23KYpQnY/MSp97n2SXj2FvO0sU37O4yhu0uQ== 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:18 +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:18 +0000 From: Alexandre Courbot <acourbot@nvidia.com> Subject: [PATCH v3 0/2] rust/revocable: add try_access_with() convenience method Date: Sun, 06 Apr 2025 22:58:14 +0900 Message-Id: <20250406-try_with-v3-0-c0947842e768@nvidia.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAHaI8mcC/3WNQQ7CIBBFr2JYixkgreDKexhj6AB2FrYGGrRpe ndpVzXR5ZvMe39iyUfyiZ12E4s+U6K+K6D2O4at7e6ekyvMJMgKlFB8iOPtRUPLEU0wwjnV1MD K+zP6QO81dbkWbikNfRzXchbL9UckCy54ZQJoixpAuHOXyZE9YP9Yon8M69D6o3dGW7M1lt0st 1tmY0oOXEvpsVYIVWi+zHmeP/v8LpsNAQAA X-Change-ID: 20250313-try_with-cc9f91dd3b60 To: Miguel Ojeda <ojeda@kernel.org>, Alex Gaynor <alex.gaynor@gmail.com>, Boqun Feng <boqun.feng@gmail.com>, Gary Guo <gary@garyguo.net>, Danilo Krummrich <dakr@kernel.org>, =?utf-8?q?Bj=C3=B6rn_Roy_Baron?= <bjorn3_gh@protonmail.com>, Benno Lossin <benno.lossin@proton.me>, Andreas Hindborg <a.hindborg@kernel.org>, Alice Ryhl <aliceryhl@google.com>, Trevor Gross <tmgross@umich.edu>, Bjorn Helgaas <bhelgaas@google.com> Cc: rust-for-linux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, Alexandre Courbot <acourbot@nvidia.com> X-Mailer: b4 0.14.2 X-ClientProxiedBy: TYCP286CA0286.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:3c8::18) To CH2PR12MB3990.namprd12.prod.outlook.com (2603:10b6:610:28::18) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: <linux-pci.vger.kernel.org> List-Subscribe: <mailto:linux-pci+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-pci+unsubscribe@vger.kernel.org> MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB3990:EE_|CH3PR12MB8403:EE_ X-MS-Office365-Filtering-Correlation-Id: 49b8963c-4975-4c4e-40c4-08dd75131542 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?L4Arw6akdU52x8EdCbZ2xBM/+8j2JU8?= =?utf-8?q?gjSPfY5HVYWcmfKv+XcrvwPYVFR0Vln7OyXcuiSM+TcVOwOgmNaGrRrGbYRW5gGi0?= =?utf-8?q?Bc9nQRFjC8vpZeDo9GyGNYI1S63rOFrJ4+0PQq1r2cYinBgiZe6gSKF7wL7cgF0sL?= =?utf-8?q?OCvhtTLMMDJZ/RJBQn4flDP5MQjwMxfmMFe+cmcggu3pmVX4+Xzv0hyNoUZAPeNWB?= =?utf-8?q?IGxbObakUlmuGtXMS9i4Nn/YgxdwTYpP5X+Tr22Cgz9PfONV4Vf2mQyDbe4vYnbeE?= =?utf-8?q?fnDmLGEtdVM/MPOou0Kyf03wnV073m1STAn2AVJc5qeYWiFdRi0MYnV6ufHq31D7m?= =?utf-8?q?VFL8BBERG+nPXxGUjcVFIu0Q/dxGBu32HE+T+wA6+OzE4pbobAvzoFjRSwidfaJ/8?= =?utf-8?q?d7x+JMuwr4GYpEUXQNqhu5BnxZ+30FD602JqDWuvwVS9SoQDBldaA6RMurf0FLOKT?= =?utf-8?q?Z7ZrIFCjVxm9Uao1427B60TcZIDsrisdCPRyzES3f+3uhPY5bBslu8qTVqpk695aA?= =?utf-8?q?T3zuDKl5YMz3xhPxjUjWBnVzZJaR0izRDF5v7HUXGGVaSHre89jPRPxmfpImL3aWP?= =?utf-8?q?2+aH7byoEfPA2zieeXJFdMEfkIJzqsEJRwQm0KV4F8hE0Q7qsN2L+P2/u7vYW+zkk?= =?utf-8?q?dQvHECBliWmglCHbip4CHl/E6HFh2tYT3bcDlG45R4e8zeX0/ErGC/g13Uqy8xWEZ?= =?utf-8?q?NjJuD2udM+hf/H0u6Yp4Hy0t3yGjCkxOPdVycchJKqZ+5tF9j2d15wNTtW+OFbPDo?= =?utf-8?q?JRp7el+yqUIzOhQs9qguc0nBHNkJGL5P4wF0wILNsNlXWPebzKizxqpjfuJKty+Qe?= =?utf-8?q?oug38d1gHDeCr9xIdlPEJEeKmhp+Ii/7CCNAMKmXqeYPjHpERbCiS7lxww96zosM9?= =?utf-8?q?/sVjT7b09M5HiizYAR77UzH4Tsu8y17CdIf5lXcgQ4KgPDs1IRmSNllk/w7Z/L227?= =?utf-8?q?4u5m5HIIb16ckiTj0VDZvbDOYeHYgFKXJ7tE6OOB5giPbyowCPFmYhq9fkuSZVY45?= =?utf-8?q?5+ryMIyxIXYQJ74moy8P469mawRCz74f/ifs8nSnnhOq/F66TvZjAXp3FvMHE7DwS?= =?utf-8?q?iqScXusCsA5vHIl5bmuiximJ/ecNhEww2wCavVWfAW7D91fL9s4o5PnzrOU8eDO0I?= =?utf-8?q?XfI5YUWwjxN/0PuWAOdePHs5t5ZtRCF07P7WPPWR8aTG8GqQ27y3+Ti3ZeYnv/NCB?= =?utf-8?q?uYlR2qwsramilmdc8o6808xNhEg55aqeSMKlP2ZTikJG8p450Qku7vE38A6ikMden?= =?utf-8?q?D+sLZS+FyKkZ8PpOgCbrA60OEd1ZtAHPV0L67WQ5FXL5YL0mVduQcTb1Wn3TtryLR?= =?utf-8?q?moYkp3Tpauao9VXfdFWVRTQ1GqarXEgAoLog6Tl//lqqf5GVsSXaUhU=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?Box0CvbS4knhuiOyUStyI3sxeOUx?= =?utf-8?q?/zeCgwm81sUtE3R9JZemLkupbAvH8yNjD1k66rdHLv2CxlDulOg/uvZTG9QSxPE0j?= =?utf-8?q?j+HWa+by1h+90gd+rI7A1rWQ0pdAk2Z0/5RYux3x09zcdMg1ItYciwd8ipxSoGfIz?= =?utf-8?q?QgfcBwz3ykal7QIaTaB9gkWbTDLryndxP6JttW002cMFekn9jvyHDkXbX9Uktcfug?= =?utf-8?q?/t1KDar0nVMKMcjSXxfn/co9X3vyX9tLp+Ti2MUZP/k98zIM0kxZjFrDUJu4ivjj1?= =?utf-8?q?2AtKQkUrqP3TpVvYOa6kn7N+F0BWap68UPI5jxJt3lRNiqYVmkUlCbCnsbbz9aRos?= =?utf-8?q?syxCJJbQ+wgKzi2pDOREqbuj/egEi2risLgl6nJ62GBFjjbhKil5mNVlNSkieh3iE?= =?utf-8?q?bdX+pz/XEn/lq5q1Rr4IowTH+d8LWMoXRI5SjvCZ8JYbG8ypGR0xekZ6iEO8iXFXN?= =?utf-8?q?wFxD7RuF12UwJiyUQN/2p/vVfzmXFhdUl9MNpM6SqdpYn1+c2TZyKcODNaqwcQbl7?= =?utf-8?q?UR7bGBdNRc0xnLYG71I2beXnxSU9As4jX9bHJX6DpWz0KzTsDBYafkERNxTqDN0yH?= =?utf-8?q?Vl/s19LP0jmL20UVluXbsktzEJhiDyEMMgfvQr3o1TOIzEmZhaLKUhMLvm1R8ie6R?= =?utf-8?q?i1NWdMJAOUzfy5ZkL73l4f5enuDqKvw5dkco8G4wgJPHfKX749vMmEp5P+DyEPx3Q?= =?utf-8?q?L9kOxo1rrDayS26eiLQg9TxrFzlUzCRZc9FPG56b5rh322y6opsLLym0ziDglCfsD?= =?utf-8?q?uPvtR5ycTEOOn9jjvGg8SHhwqkYsuqnHyYMqy+eTvbH18y64wES2UR78rEN8769/E?= =?utf-8?q?FdlmsglmZN1ljPqDqwLlwycmvbPyNCMEHniFYgm6k32NR68jtmxbmiB5EwjgpVvAx?= =?utf-8?q?+lsGCzFl/HN7ba61GxPPwj5OrKlbCwhLvDeBQf9pdKElBXe2Pvl+yE8jnxHCuWEfl?= =?utf-8?q?3M019LVkwWCDZSVTBzHqkk0eek0aRZAiBrx3UsZZ10r8zPV10AKQJClMOOxqyw0Sy?= =?utf-8?q?k/WRM7X3E5Ju+GQHtxasZE3HQ2X3w6LRiKP5kI6mjLlonag7gtaFNa0vNeN1uXkqw?= =?utf-8?q?T4yCvDhS7IHsGtErFOv15pXKfXZuyZFji+UpcvXDXvd90628/t9vWMdL69gbUFlSE?= =?utf-8?q?zRBgpXJXu4r8CD0J6KaEllq8FxszY1iWlSOMY937oV9beS1n2GU0RxYXxVtj3Os/3?= =?utf-8?q?sBTwiSKlQv0bUnr08Rlq3hr0G1DK0sOej6OCO+MotS7CFtwdgMjY0j1ujUoBsjzN4?= =?utf-8?q?acT3u5y+ttOieUxKQEz97KvdP7z2YhUIk4VZfiJSShW+bhyUSwFSwo2HO5tnNRSgd?= =?utf-8?q?MNjbIvyq1y6TNuRDGNuBlNNL4eRmjkhjf3jNGkukAmcop+vf1ghq5SVXhG8eAY4IO?= =?utf-8?q?sS9q0KP6BkVsYm6VyiEU8cU9FggNh7/YnhpROTfrS4nGQZFDeF/CyR+5w+zOEY119?= =?utf-8?q?RZIZcLi2bylw12gEu/yoJv0McajA+wm7dOqZKptmH2qtV9xOGKvvfilVpaJ+d+Z1g?= =?utf-8?q?+BwA13vWgK2UNNfTzZ/enJAU4gMN+bsinrUI+DlC3l1UpT2/bg45EHdbiQmWjZQ/N?= =?utf-8?q?NIQcb5IASTF?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49b8963c-4975-4c4e-40c4-08dd75131542 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:17.9776 (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: kobNe0jX+d51G9xPmx+Wu9/1Wm1CiWxmHpoyjAWUuI+CDBoQ0qQu+Q5l7gzPqGZIRb/vH8Lpvdu8t5LYIcrnKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8403 |
Series |
rust/revocable: add try_access_with() convenience method
|
expand
|
This is a feature I found useful to have while writing Nova driver code that accessed registers alongside other operations. I would find myself quite confused about whether the guard was held or dropped at a given point of the code, and it felt like walking through a minefield; this pattern makes things safer and easier to read according to my experience writing nova-core code. Signed-off-by: Alexandre Courbot <acourbot@nvidia.com> --- Changes in v3: - Add Acked-by from v2. Changes in v2: - Use FnOnce for the callback type. - Rename to try_access_with. - Don't assume that users will want to map failure to ENXIO and return an option. - Use a single method and let users adapt the behavior using their own wrappers/macros. --- Alexandre Courbot (2): rust/revocable: add try_access_with() convenience method samples: rust: convert PCI rust sample driver to use try_access_with() rust/kernel/revocable.rs | 16 ++++++++++++++++ samples/rust/rust_driver_pci.rs | 11 +++++------ 2 files changed, 21 insertions(+), 6 deletions(-) --- base-commit: 7eb172143d5508b4da468ed59ee857c6e5e01da6 change-id: 20250313-try_with-cc9f91dd3b60 Best regards,