"Petr Pavlu" <petr.pavlu@xxxxxxxx> writes: > On 1/9/25 11:54, Andreas Hindborg wrote: >> This patch includes changes required for Rust kernel modules to utilize >> module parameters. This code implements read only support for integer >> types without `sysfs` support. >> [cut] >> + >> + // SAFETY: `old_value` is valid for writes, as we have exclusive >> + // access. `old_value` is pointing to an initialized static, an > > Typo: an -> and Thanks. [cut] >> + >> + fn emit_params(&mut self, info: &ModuleInfo) { >> + let Some(params) = &info.params else { >> + return; >> + }; >> + >> + for param in params { >> + let ops = param_ops_path(¶m.ptype); >> + >> + // Note: The spelling of these fields is dictated by the user space >> + // tool `modinfo`. >> + self.emit_param("parmtype", ¶m.name, ¶m.ptype); >> + self.emit_param("parm", ¶m.name, ¶m.description); >> + >> + write!( >> + self.param_buffer, >> + " >> + pub(crate) static {param_name}: >> + ::kernel::module_param::ModuleParamAccess<{param_type}> = >> + ::kernel::module_param::ModuleParamAccess::new({param_default}); >> + >> + #[link_section = \"__param\"] >> + #[used] >> + static __{module_name}_{param_name}_struct: >> + ::kernel::module_param::RacyKernelParam = >> + ::kernel::module_param::RacyKernelParam(::kernel::bindings::kernel_param {{ >> + name: if cfg!(MODULE) {{ >> + c\"{module_name}.{param_name}\" >> + }} else {{ >> + c\"{param_name}\" >> + }}.as_ptr(), > > This should be the other way around? Running > 'insmod rust_minimal.ko test_parameter=2' reports for me that the > parameter is unknown while specifying 'rust_minimal.test_parameter=2' > works. The prefix should be used only if the module is built-in so the > parameter can be distinguished on the kernel command line. Thanks for testing! This actually gave me quite a headache when I was using the series elsewhere. I forgot to resend the series with the fix, sorry. Best regards, Andreas Hindborg