Re: [PATCH v3 2/2] samples: rust: convert PCI rust sample driver to use try_access_with()

From: Benno Lossin
Date: Sun Apr 06 2025 - 17:21:00 EST


On Sun Apr 6, 2025 at 3:58 PM CEST, Alexandre Courbot wrote:
> 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 <dakr@xxxxxxxxxx>
> Signed-off-by: Alexandre Courbot <acourbot@xxxxxxxxxx>

Reviewed-by: Benno Lossin <benno.lossin@xxxxxxxxx>

---
Cheers,
Benno

> ---
> 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<Pin<KBox<Self>>>
> 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())
> }