diff options
author | Alice Ryhl <aliceryhl@google.com> | 2024-02-26 10:44:02 +0100 |
---|---|---|
committer | Miguel Ojeda <ojeda@kernel.org> | 2024-03-29 18:04:32 +0100 |
commit | d0f0241d8d8b71b3f5fdf0592e6e6b0e44d5d5c0 (patch) | |
tree | fd5226dca6c4967d8a100479237cc83670536972 /rust | |
parent | Linux 6.9-rc1 (diff) | |
download | linux-d0f0241d8d8b71b3f5fdf0592e6e6b0e44d5d5c0.tar.xz linux-d0f0241d8d8b71b3f5fdf0592e6e6b0e44d5d5c0.zip |
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/20231101-rust-binder-v1-2-08ba9197f637@google.com/ [1]
Link: https://lore.kernel.org/all/20240217002717.57507-1-ojeda@kernel.org/ [2]
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Trevor Gross <tmgross@umich.edu>
Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Link: https://lore.kernel.org/r/20240226-module-as-ptr-v1-1-83bc89213113@google.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Diffstat (limited to 'rust')
-rw-r--r-- | rust/kernel/lib.rs | 7 |
1 files changed, 7 insertions, 0 deletions
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)))] |