Re: [PATCH v9 09/10] rust: macros: remove `THIS_MODULE` static from `module!`
Petr Pavlu <[email protected]> Mon, 3 Aug 2026 11:01:14 +0200
| Newsgroups | org.kernel.vger.linux-modules,dev.linux.lists.driver-core,dev.linux.lists.nova-gpu,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-block,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest,org.kernel.vger.linux-pci,org.kernel.vger.netdev,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On 7/23/26 4:10 AM, Alvin Sun wrote: > All users have been migrated to `ModuleMetadata::THIS_MODULE` const or > `this_module::<LocalModule>()` helper. The `static THIS_MODULE` > generated by the `module!` macro is no longer referenced anywhere, > so remove it to avoid having two sources of the same `ThisModule` > pointer. > > Assisted-by: opencode:glm-5.2 > Reviewed-by: Andreas Hindborg <[email protected]> > Reviewed-by: Gary Guo <[email protected]> > Acked-by: Danilo Krummrich <[email protected]> > Reviewed-by: Alice Ryhl <[email protected]> > Signed-off-by: Alvin Sun <[email protected]> Acked-by: Petr Pavlu <[email protected]> > --- > rust/macros/module.rs | 16 ---------------- > 1 file changed, 16 deletions(-) > > diff --git a/rust/macros/module.rs b/rust/macros/module.rs > index aa9a618d5d19e..23b6a1b456b80 100644 > --- a/rust/macros/module.rs > +++ b/rust/macros/module.rs > @@ -497,22 +497,6 @@ pub(crate) fn module(info: ModuleInfo) -> Result<TokenStream> { > /// Used by the printing macros, e.g. [`info!`]. > const __LOG_PREFIX: &[u8] = #name_cstr.to_bytes_with_nul(); > > - // SAFETY: `__this_module` is constructed by the kernel at load time and will not be > - // freed until the module is unloaded. > - #[cfg(MODULE)] > - static THIS_MODULE: ::kernel::ThisModule = unsafe { > - extern "C" { > - static __this_module: ::kernel::types::Opaque<::kernel::bindings::module>; > - }; > - > - ::kernel::ThisModule::from_ptr(__this_module.get()) > - }; > - > - #[cfg(not(MODULE))] > - static THIS_MODULE: ::kernel::ThisModule = unsafe { > - ::kernel::ThisModule::from_ptr(::core::ptr::null_mut()) > - }; > - > /// The `LocalModule` type is the type of the module created by `module!`, > /// `module_pci_driver!`, `module_platform_driver!`, etc. > type LocalModule = #type_; >