Re: [PATCH] rust: fix building firmware abstraction on 32bit arm

From: Danilo Krummrich
Date: Fri Apr 11 2025 - 10:22:44 EST


On Fri, Apr 11, 2025 at 03:47:28PM +0200, Christian Schrefl wrote:
> On 11.04.25 12:35 PM, Danilo Krummrich wrote:
> > On Fri, Apr 11, 2025 at 09:14:48AM +0200, Christian Schrefl wrote:
> > I did a test build with multi_v7_defconfig and I can't reproduce this issue.
> >
> Interesting, I've it seems this is only an issue on 6.13 with my arm patches applied.
>
> It seems that it works on v6.14 and v6.15-rc1 but the error occurs on ffd294d346d1 (tag: v6.13)
> with my 32-bit arm patches applied.

That makes sense, commit 1bae8729e50a ("rust: map `long` to `isize` and `char`
to `u8`") changed FwFunc to take a *const u8, which previously was *const i8.

> >> diff --git a/rust/kernel/firmware.rs b/rust/kernel/firmware.rs
> >> index f04b058b09b2d2397e26344d0e055b3aa5061432..1d6284316f2a4652ef3f76272670e5e29b0ff924 100644
> >> --- a/rust/kernel/firmware.rs
> >> +++ b/rust/kernel/firmware.rs
> >> @@ -5,14 +5,18 @@
> >> //! C header: [`include/linux/firmware.h`](srctree/include/linux/firmware.h)
> >>
> >> use crate::{bindings, device::Device, error::Error, error::Result, str::CStr};
> >> -use core::ptr::NonNull;
> >> +use core::{ffi, ptr::NonNull};
> >
> > The change itself seems to be fine anyways, but I think we should use crate::ffi
> > instead.
> Right, I just did what RA recommended without thinking about it much.
>
> I guess this patch isn't really needed. Should I still send a V2 using `crate::ffi`?

Yes, please. I think it's still an improvement.