Re: [PATCH] rust: uaccess: use to_result for error handling

From: Miguel Ojeda
Date: Fri Aug 22 2025 - 16:24:40 EST


On Fri, Aug 22, 2025 at 7:03 AM Onur Özkan <work@xxxxxxxxxxxxx> wrote:
>
> Nice catch. I could use `try_into().unwrap_or(0)` but that feels a bit
> iffy since it would silently avoid the error if `isize` happens to be
> much smaller than what `i32` can handle (though I am not sure if it's
> possible in practice in the kernel codebase). Let's just ignore this
> patch.

`isize` is at least 32-bit, but I am not sure that would be more readable.

If we want to make all these cases go through a `to_result`-like
function, then we may want to have variants of that and so on instead
-- Onur created this related Zulip thread:

https://rust-for-linux.zulipchat.com/#narrow/channel/288089-General/topic/returning.20.60Ok.28c_int.29.60.20instead.20of.20.60Ok.28.28.29.29.60.20on.20.60to_result.60/near/535616940

Similarly, we also may want to have a function or similar that allows
to perform such infallible casts (that are not infallible in general
Rust but are in the kernel); for reference, a similar recent
discussion at:

https://lore.kernel.org/rust-for-linux/CANiq72nW=XuUFqOB-6XavOPXtpbkHsagEkYvcD2JfCEiopYo=Q@xxxxxxxxxxxxxx/

Thanks!

Cheers,
Miguel