On Sat Jan 10, 2026 at 3:07 PM GMT, Kari Argillander wrote: > Still RFC. Not all people for each subsystems are not included yet as > this touch quite lot of things. I would like to get feed back is this > resonable seperation and how we will land this. I have tried my best so > that it can be applied in multiple staged if needed. I have not receive > any feedback on this series and that is little bit worrying. > > Introduce new ThisModule trait and THIS_MODULE impl. > > So currently we have problem that we are not always filling .owner field > example for file_operations. I think we can enable const_refs_to_static > already as that is in 1.78 and is stable in 1.83. So that fits perfecly > for us. This also seems to be quite request feature but I did not found > that no one has ever suggested that we just enable this. > > So basic idea is that we will have ThisModule trait which is used kernel > side. Module side we will always use THIS_MODULE. That is completly > private for modules and kernel crate cannot use it. Currently we have > THIS_MODULE, LocalModule and
Why is trait needed? Couldn't this just be a `const THIS_MODULE` required for vtable? Best, Gary > > module: &' static ThisModule > > on init functions. As we anyway need THIS_MODULE just use that for all > of these things. > > Patches 1-2 introduce THIS_MODULE and ThisModule trait. > Patches 3-12 can be applied any order after 1-2. > Patch 13 depends on patches 11-12. > Patches 14-15 are clean up patches and depends 1-13. > > Argillander > > To: Miguel Ojeda <[email protected]> > To: Boqun Feng <[email protected]> > To: Gary Guo <[email protected]> > To: Björn Roy Baron <[email protected]> > To: Benno Lossin <[email protected]> > To: Andreas Hindborg <[email protected]> > To: Alice Ryhl <[email protected]> > To: Trevor Gross <[email protected]> > To: Danilo Krummrich <[email protected]> > > To: Alexandre Courbot <[email protected]> > > Cc: Luis Chamberlain <[email protected]> > Cc: Petr Pavlu <[email protected]> > Cc: Daniel Gomez <[email protected]> > Cc: Sami Tolvanen <[email protected]> > Cc: Aaron Tomlin <[email protected]> > > Signed-off-by: Kari Argillander <[email protected]> > --- > Changes in v3: > - Edit cover. > - Seperate module name changes to seperate patches. > - Rebase top of next 20260109 > - Seperate configfs changes to own commit. > - Fix one place still used M over TM for ThisModule. > - Link to v2: > https://lore.kernel.org/r/[email protected] > > Changes in v2: > - Patches are now sepereted properly. > - Removed debugfs changes as that is not so clear to me. > - Remove module parameter and just used THIS_MODULE everywhere. > - Made macro to make THIS_MODULE. > - Doc tests also have THIS_MODULE. > - Link to v1: > https://lore.kernel.org/r/[email protected] > > --- > Kari Argillander (15): > rust: enable const_refs_to_static feature > rust: add new ThisModule trait and THIS_MODULE impl > rust: miscdevice: fix use after free because missing .owner > rust: block: fix missing owner field in block_device_operations > rust: drm: fix missing owner in file_operations > rust: configfs: use new THIS_MODULE > rust: binder: use new THIS_MODULE > rust: firmware: use THIS_MODULE over LocalModule for name > gpu: nova-core: use THIS_MODULE over LocalModule for name > samples: rust: auxiliary: use THIS_MODULE over LocalModule for name > rust: driver: make RegistrationOps::register() to use new ThisModule > rust: phy: make Registration::register() use new ThisModule > rust: remove module argument from InPlaceModule::init() > rust: remove kernel::ModuleMetadata > rust: remove old version of ThisModule > > drivers/android/binder/rust_binder_main.rs | 5 +- > drivers/block/rnull/configfs.rs | 2 +- > drivers/block/rnull/rnull.rs | 3 +- > drivers/gpu/drm/nova/driver.rs | 2 + > drivers/gpu/drm/tyr/driver.rs | 2 + > drivers/gpu/nova-core/nova_core.rs | 2 +- > lib/find_bit_benchmark_rust.rs | 3 +- > rust/kernel/auxiliary.rs | 16 +-- > rust/kernel/block/mq.rs | 1 + > rust/kernel/block/mq/gen_disk.rs | 30 +----- > rust/kernel/block/mq/operations.rs | 30 ++++++ > rust/kernel/configfs.rs | 49 ++++----- > rust/kernel/driver.rs | 31 +++--- > rust/kernel/drm/device.rs | 2 +- > rust/kernel/drm/driver.rs | 4 + > rust/kernel/drm/gem/mod.rs | 5 +- > rust/kernel/firmware.rs | 4 +- > rust/kernel/i2c.rs | 11 +- > rust/kernel/lib.rs | 161 > ++++++++++++++++++++++++----- > rust/kernel/miscdevice.rs | 5 + > rust/kernel/net/phy.rs | 29 ++++-- > rust/kernel/pci.rs | 15 +-- > rust/kernel/platform.rs | 12 +-- > rust/kernel/prelude.rs | 2 +- > rust/kernel/sync/lock/global.rs | 4 +- > rust/kernel/usb.rs | 13 +-- > rust/macros/lib.rs | 4 +- > rust/macros/module.rs | 24 +---- > samples/rust/rust_configfs.rs | 2 +- > samples/rust/rust_debugfs_scoped.rs | 2 +- > samples/rust/rust_driver_auxiliary.rs | 8 +- > samples/rust/rust_driver_faux.rs | 2 +- > samples/rust/rust_minimal.rs | 2 +- > samples/rust/rust_misc_device.rs | 3 +- > samples/rust/rust_print_main.rs | 2 +- > scripts/rustdoc_test_gen.rs | 2 + > 36 files changed, 298 insertions(+), 196 deletions(-) > --- > base-commit: f417b7ffcbef7d76b0d8860518f50dae0e7e5eda > change-id: 20251230-this_module_fix-a390bff24897 > > Best regards,

