Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sysctl: move umh sysctl registration to its own file

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%

Acked-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>

+10 -4
-2
include/linux/umh.h
··· 42 42 extern int 43 43 call_usermodehelper_exec(struct subprocess_info *info, int wait); 44 44 45 - extern struct ctl_table usermodehelper_table[]; 46 - 47 45 enum umh_disable_depth { 48 46 UMH_ENABLED = 0, 49 47 UMH_FREEZING,
-1
kernel/sysctl.c
··· 2322 2322 int __init sysctl_init_bases(void) 2323 2323 { 2324 2324 register_sysctl_init("kernel", kern_table); 2325 - register_sysctl_init("kernel/usermodehelper", usermodehelper_table); 2326 2325 #ifdef CONFIG_KEYS 2327 2326 register_sysctl_init("kernel/keys", key_sysctls); 2328 2327 #endif
+10 -1
kernel/umh.c
··· 544 544 return 0; 545 545 } 546 546 547 - struct ctl_table usermodehelper_table[] = { 547 + #if defined(CONFIG_SYSCTL) 548 + static struct ctl_table usermodehelper_table[] = { 548 549 { 549 550 .procname = "bset", 550 551 .data = &usermodehelper_bset, ··· 562 561 }, 563 562 { } 564 563 }; 564 + 565 + static int __init init_umh_sysctls(void) 566 + { 567 + register_sysctl_init("kernel/usermodehelper", usermodehelper_table); 568 + return 0; 569 + } 570 + early_initcall(init_umh_sysctls); 571 + #endif /* CONFIG_SYSCTL */