mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-21 22:47:51 -04:00
kernel: param: initialize module_kset in a pure_initcall
Commit "driver core: platform: set mod_name in driver registration" will set struct device_driver's mod_name member for platform driver registration. For a driver to be registered with its mod_name set, module_kset needs to be initialized, which currently happens in a subsys_initcall in param_sysfs_init(). The tegra cbb drivers register themselves before module_kset init, in a core_initcall. This works currently because lookup_or_create_module_kobject(), which dereferences module_kset via kset_find_obj(), is not called if mod_name is not set, which is the case now. So in preparation for the commit "driver core: platform: set mod_name in driver registration", move module_kset init to pure_initcall level, ensuring it happens before tegra cbb driver registration. Suggested-by: Gary Guo <gary@garyguo.net> Reviewed-by: Gary Guo <gary@garyguo.net> Co-developed-by: Rahul Bukte <rahul.bukte@sony.com> Signed-off-by: Rahul Bukte <rahul.bukte@sony.com> Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com> Link: https://patch.msgid.link/20260601101942.4002661-1-shashank.mahadasyam@sony.com Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
committed by
Danilo Krummrich
parent
cd6e95e7ab
commit
c82dfce478
@@ -942,9 +942,9 @@ const struct kobj_type module_ktype = {
|
||||
/*
|
||||
* param_sysfs_init - create "module" kset
|
||||
*
|
||||
* This must be done before the initramfs is unpacked and
|
||||
* request_module() thus becomes possible, because otherwise the
|
||||
* module load would fail in mod_sysfs_init.
|
||||
* This must be done before any driver registration so that when a driver comes
|
||||
* from a built-in module, the driver core can add the module under /sys/module
|
||||
* and create the associated driver symlinks.
|
||||
*/
|
||||
static int __init param_sysfs_init(void)
|
||||
{
|
||||
@@ -957,7 +957,7 @@ static int __init param_sysfs_init(void)
|
||||
|
||||
return 0;
|
||||
}
|
||||
subsys_initcall(param_sysfs_init);
|
||||
pure_initcall(param_sysfs_init);
|
||||
|
||||
/*
|
||||
* param_sysfs_builtin_init - add sysfs version and parameter
|
||||
|
||||
Reference in New Issue
Block a user