Message ID | 20230530232914.3689712-2-mcgrof@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | sysctl: move umh and keys sysctls | expand |
On Wed May 31, 2023 at 2:29 AM EEST, Luis Chamberlain wrote: > Move the umh sysctl registration to its own file, the array is > already there. We do this to remove the clutter out of kernel/sysctl.c > to avoid merge conflicts. > > This also lets the sysctls not be built at all now when CONFIG_SYSCTL > is not enabled. > > This has a small penalty of 23 bytes but soon we'll be removing > all the empty entries on sysctl arrays so just do this cleanup > now: > > ./scripts/bloat-o-meter vmlinux.base vmlinux.1 > add/remove: 2/0 grow/shrink: 0/1 up/down: 49/-26 (23) > Function old new delta > init_umh_sysctls - 33 +33 > __pfx_init_umh_sysctls - 16 +16 > sysctl_init_bases 111 85 -26 > Total: Before=21256914, After=21256937, chg +0.00% > > Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> > --- > include/linux/umh.h | 2 -- > kernel/sysctl.c | 1 - > kernel/umh.c | 11 ++++++++++- > 3 files changed, 10 insertions(+), 4 deletions(-) Acked-by: Jarkko Sakkinen <jarkko@kernel.org> BR, Jarkko
diff --git a/include/linux/umh.h b/include/linux/umh.h index 5d1f6129b847..daa6a7048c11 100644 --- a/include/linux/umh.h +++ b/include/linux/umh.h @@ -42,8 +42,6 @@ call_usermodehelper_setup(const char *path, char **argv, char **envp, extern int call_usermodehelper_exec(struct subprocess_info *info, int wait); -extern struct ctl_table usermodehelper_table[]; - enum umh_disable_depth { UMH_ENABLED = 0, UMH_FREEZING, diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 241b817c0240..caf4a91522a1 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2322,7 +2322,6 @@ static struct ctl_table vm_table[] = { int __init sysctl_init_bases(void) { register_sysctl_init("kernel", kern_table); - register_sysctl_init("kernel/usermodehelper", usermodehelper_table); #ifdef CONFIG_KEYS register_sysctl_init("kernel/keys", key_sysctls); #endif diff --git a/kernel/umh.c b/kernel/umh.c index 60aa9e764a38..41088c5c39fd 100644 --- a/kernel/umh.c +++ b/kernel/umh.c @@ -544,7 +544,8 @@ static int proc_cap_handler(struct ctl_table *table, int write, return 0; } -struct ctl_table usermodehelper_table[] = { +#if defined(CONFIG_SYSCTL) +static struct ctl_table usermodehelper_table[] = { { .procname = "bset", .data = &usermodehelper_bset, @@ -561,3 +562,11 @@ struct ctl_table usermodehelper_table[] = { }, { } }; + +static int __init init_umh_sysctls(void) +{ + register_sysctl_init("kernel/usermodehelper", usermodehelper_table); + return 0; +} +early_initcall(init_umh_sysctls); +#endif /* CONFIG_SYSCTL */
Move the umh sysctl registration to its own file, the array is already there. We do this to remove the clutter out of kernel/sysctl.c to avoid merge conflicts. This also lets the sysctls not be built at all now when CONFIG_SYSCTL is not enabled. This has a small penalty of 23 bytes but soon we'll be removing all the empty entries on sysctl arrays so just do this cleanup now: ./scripts/bloat-o-meter vmlinux.base vmlinux.1 add/remove: 2/0 grow/shrink: 0/1 up/down: 49/-26 (23) Function old new delta init_umh_sysctls - 33 +33 __pfx_init_umh_sysctls - 16 +16 sysctl_init_bases 111 85 -26 Total: Before=21256914, After=21256937, chg +0.00% Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> --- include/linux/umh.h | 2 -- kernel/sysctl.c | 1 - kernel/umh.c | 11 ++++++++++- 3 files changed, 10 insertions(+), 4 deletions(-)