2024-02-26 10:07:46

by Alice Ryhl

[permalink] [raw]
Subject: [PATCH] rust: add `Module::as_ptr`

This allows you to get a raw pointer to THIS_MODULE for use in unsafe
code. The Rust Binder RFC uses it when defining fops for the binderfs
component [1].

This doesn't really need to go in now - it could go in together with
Rust Binder like how it is sent in the Rust Binder RFC. However, the
upcoming 1.77.0 release of the Rust compiler introduces a new warning,
and applying this patch now will silence that warning. That allows us to
avoid adding the #[allow(dead_code)] annotation seen in [2].

Link: https://lore.kernel.org/rust-for-linux/[email protected]/ [1]
Link: https://lore.kernel.org/all/[email protected]/ [2]
Signed-off-by: Alice Ryhl <[email protected]>
---
rust/kernel/lib.rs | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/rust/kernel/lib.rs b/rust/kernel/lib.rs
index be68d5e567b1..1952a0df0a15 100644
--- a/rust/kernel/lib.rs
+++ b/rust/kernel/lib.rs
@@ -92,6 +92,13 @@ impl ThisModule {
pub const unsafe fn from_ptr(ptr: *mut bindings::module) -> ThisModule {
ThisModule(ptr)
}
+
+ /// Access the raw pointer for this module.
+ ///
+ /// It is up to the user to use it correctly.
+ pub const fn as_ptr(&self) -> *mut bindings::module {
+ self.0
+ }
}

#[cfg(not(any(testlib, test)))]

---
base-commit: e944171070b65521c0513c01c56174ec8fd7d249
change-id: 20240226-module-as-ptr-08300b88525b

Best regards,
--
Alice Ryhl <[email protected]>



2024-03-09 13:04:26

by Benno Lossin

[permalink] [raw]
Subject: Re: [PATCH] rust: add `Module::as_ptr`

On 2/26/24 10:44, Alice Ryhl wrote:
> This allows you to get a raw pointer to THIS_MODULE for use in unsafe
> code. The Rust Binder RFC uses it when defining fops for the binderfs
> component [1].
>
> This doesn't really need to go in now - it could go in together with
> Rust Binder like how it is sent in the Rust Binder RFC. However, the
> upcoming 1.77.0 release of the Rust compiler introduces a new warning,
> and applying this patch now will silence that warning. That allows us to
> avoid adding the #[allow(dead_code)] annotation seen in [2].
>
> Link: https://lore.kernel.org/rust-for-linux/[email protected]/ [1]
> Link: https://lore.kernel.org/all/[email protected]/ [2]
> Signed-off-by: Alice Ryhl <[email protected]>

Reviewed-by: Benno Lossin <[email protected]>

--
Cheers,
Benno


2024-03-13 19:31:59

by Trevor Gross

[permalink] [raw]
Subject: Re: [PATCH] rust: add `Module::as_ptr`

On Mon, Feb 26, 2024 at 5:13 AM Alice Ryhl <[email protected]> wrote:
>
> This allows you to get a raw pointer to THIS_MODULE for use in unsafe
> code. The Rust Binder RFC uses it when defining fops for the binderfs
> component [1].
>
> This doesn't really need to go in now - it could go in together with
> Rust Binder like how it is sent in the Rust Binder RFC. However, the
> upcoming 1.77.0 release of the Rust compiler introduces a new warning,
> and applying this patch now will silence that warning. That allows us to
> avoid adding the #[allow(dead_code)] annotation seen in [2].
>
> Link: https://lore.kernel.org/rust-for-linux/[email protected]/ [1]
> Link: https://lore.kernel.org/all/[email protected]/ [2]
> Signed-off-by: Alice Ryhl <[email protected]>
> ---

Reviewed-by: Trevor Gross <[email protected]>

This exposes a `bindings` type to the user which we don't really do in
many other places, but it makes sense here of course.

2024-03-29 19:46:22

by Miguel Ojeda

[permalink] [raw]
Subject: Re: [PATCH] rust: add `Module::as_ptr`

On Mon, Feb 26, 2024 at 10:44 AM Alice Ryhl <[email protected]> wrote:
>
> This allows you to get a raw pointer to THIS_MODULE for use in unsafe
> code. The Rust Binder RFC uses it when defining fops for the binderfs
> component [1].
>
> This doesn't really need to go in now - it could go in together with
> Rust Binder like how it is sent in the Rust Binder RFC. However, the
> upcoming 1.77.0 release of the Rust compiler introduces a new warning,
> and applying this patch now will silence that warning. That allows us to
> avoid adding the #[allow(dead_code)] annotation seen in [2].
>
> Link: https://lore.kernel.org/rust-for-linux/[email protected]/ [1]
> Link: https://lore.kernel.org/all/[email protected]/ [2]
> Signed-off-by: Alice Ryhl <[email protected]>

Applied to `rust-next` (before the Rust version upgrade) -- thanks everyone!

Cheers,
Miguel