sysctl: move umh sysctl registration to its own file
authorLuis Chamberlain <mcgrof@kernel.org>
Sun, 28 May 2023 20:43:46 +0000 (13:43 -0700)
committerLuis Chamberlain <mcgrof@kernel.org>
Thu, 8 Jun 2023 22:41:34 +0000 (15:41 -0700)
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>
include/linux/umh.h
kernel/sysctl.c
kernel/umh.c

index 5d1f6129b84703bf4252ab3ac8206f5037cda9f4..daa6a7048c11ec729c8e47fcf5b511f54c74843d 100644 (file)
@@ -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,
index 241b817c02403f0b91ec71e849ab7223a429676a..caf4a91522a13069bda0ce0049820864ec225bef 100644 (file)
@@ -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
index 60aa9e764a38f154b0adfeca24d6569f31a4ffa3..41088c5c39fdd525e5e00098bdbe6dd595fe64e1 100644 (file)
@@ -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 */