On Wed, Mar 12, 2025 at 10:22 AM Benno Lossin <benno.lossin@xxxxxxxxx> wrote: > > On Sun Mar 9, 2025 at 5:00 PM CET, Tamir Duberstein wrote: > > Avoid casting the input pointer to `*const _`, allowing the output > > pointer to be `*mut` if the input is `*mut`. This allows a number of > > `*const` to `*mut` conversions to be removed at the cost of slightly > > worse ergonomics when the macro is used with a reference rather than a > > pointer; the only example of this was in the macro's own doctest. > > > > Signed-off-by: Tamir Duberstein <tamird@xxxxxxxxx> > > One tiny nit below, but even without that: > > Reviewed-by: Benno Lossin <benno.lossin@xxxxxxxxx> > > > --- > > rust/kernel/lib.rs | 5 ++--- > > rust/kernel/pci.rs | 2 +- > > rust/kernel/platform.rs | 2 +- > > rust/kernel/rbtree.rs | 23 ++++++++++------------- > > 4 files changed, 14 insertions(+), 18 deletions(-) > > > > diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs > > index 7697c60b2d1a..9cd6b6864739 100644 > > --- a/rust/kernel/lib.rs > > +++ b/rust/kernel/lib.rs > > @@ -187,7 +187,7 @@ fn panic(info: &core::panic::PanicInfo<'_>) -> ! { > > /// } > > /// > > /// let test = Test { a: 10, b: 20 }; > > -/// let b_ptr = &test.b; > > +/// let b_ptr: *const _ = &test.b; > > You could also use `&raw test.b` to get a pointer instead of relying on > the pointer coercion. That syntax is stable since 1.82.0, so older > compilers would need to enable the `raw_ref_op` feature. > > I created an orthogonal good-first-issue for changing uses of > `addr_of[_mut]!` to `&raw [mut]`, so maybe that can also be done there: > > https://github.com/Rust-for-Linux/linux/issues/1148 Thanks for doing that! Yeah, I think moving to that syntax would be good but as you say requires enabling the feature and/or bumping the rust version, so it can't be done here directly.