* [patch 2/2] sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL
@ 2026-07-28 20:48 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2026-07-28 20:48 UTC (permalink / raw)
To: yang.yang29, vincent.guittot, shuah, peterz, pabeni, nathan,
mingo, mcoquelin.stm32, legion, kuba, kees, juri.lelli,
joel.granados, jason, hca, gor, geert, edumazet, ebiederm, davem,
dave.hansen, bsingharora, bp, alexandre.torgue, agordeev, oleg,
akpm, linux-kernel, mcgrof, akpm
From: Oleg Nesterov <oleg@redhat.com>
Subject: sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL
Date: Mon, 27 Jul 2026 16:47:22 +0200
CONFIG_SYSCTL used to make sense as a separate hidden bool before commit
61a47c1ad3a4 ("sysctl: Remove the sysctl system call"); it was selected by
both CONFIG_SYSCTL_SYSCALL and CONFIG_PROC_SYSCTL.
Today CONFIG_PROC_SYSCTL is the only selector, so the two are always
equal. Kill the hidden bool, rename the PROC_SYSCTL prompt to SYSCTL, and
s/CONFIG_PROC_SYSCTL/CONFIG_SYSCTL/ tree-wide.
Link: https://lore.kernel.org/amdveg1m4E4uQlGv@redhat.com
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Cc: Alexey Gladkov (Intel) <legion@kernel.org>
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: "Borislav Petkov (AMD)" <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Eric Biederman <ebiederm@xmission.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jakub Kacinski <kuba@kernel.org>
Cc: Jason A. Donenfeld <jason@zx2c4.com>
Cc: Joel Granados <joel.granados@kernel.org>
Cc: Juri Lelli <juri.lelli@redhat.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com>
Cc: Nathan Chancellor <nathan@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Yang Yang <yang.yang29@zte.com.cn>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
arch/m68k/configs/amcore_defconfig | 2 -
arch/m68k/configs/stmark2_defconfig | 2 -
arch/s390/Kconfig | 4 +--
arch/x86/kernel/cpu/bus_lock.c | 2 -
fs/proc/Kconfig | 3 --
fs/proc/Makefile | 2 -
fs/proc/internal.h | 2 -
include/linux/utsname.h | 2 -
init/Kconfig | 3 --
kernel/delayacct.c | 2 -
kernel/sched/core.c | 8 +++---
kernel/sched/topology.c | 4 +--
kernel/sysctl.c | 12 +++++-----
kernel/time/jiffies.c | 4 +--
kernel/utsname_sysctl.c | 4 +--
lib/Kconfig.debug | 2 -
lib/test_sysctl.c | 2 -
net/mpls/Kconfig | 2 -
tools/testing/selftests/net/config | 2 -
tools/testing/selftests/net/packetdrill/config | 2 -
tools/testing/selftests/wireguard/qemu/kernel.config | 2 -
21 files changed, 32 insertions(+), 36 deletions(-)
--- a/arch/m68k/configs/amcore_defconfig~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/arch/m68k/configs/amcore_defconfig
@@ -74,7 +74,7 @@ CONFIG_RTC_DRV_DS1307=y
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
CONFIG_FSCACHE=y
-# CONFIG_PROC_SYSCTL is not set
+# CONFIG_SYSCTL is not set
CONFIG_JFFS2_FS=y
CONFIG_ROMFS_FS=y
CONFIG_ROMFS_BACKED_BY_BOTH=y
--- a/arch/m68k/configs/stmark2_defconfig~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/arch/m68k/configs/stmark2_defconfig
@@ -87,7 +87,7 @@ CONFIG_EXT4_FS_SECURITY=y
# CONFIG_DNOTIFY is not set
# CONFIG_INOTIFY_USER is not set
CONFIG_OVERLAY_FS=y
-# CONFIG_PROC_SYSCTL is not set
+# CONFIG_SYSCTL is not set
CONFIG_SQUASHFS=y
CONFIG_XZ_DEC=y
CONFIG_PRINTK_TIME=y
--- a/arch/s390/Kconfig~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/arch/s390/Kconfig
@@ -576,7 +576,7 @@ config HIPERDISPATCH_ON
def_bool y
bool "Use hiperdispatch on vertical polarization by default"
depends on SCHED_TOPOLOGY
- depends on PROC_SYSCTL
+ depends on SYSCTL
help
Hiperdispatch aims to improve the CPU scheduler's decision
making when using vertical polarization by adjusting CPU
@@ -894,7 +894,7 @@ config CMM_IUCV
config APPLDATA_BASE
def_bool n
prompt "Linux - VM Monitor Stream, base infrastructure"
- depends on PROC_SYSCTL
+ depends on SYSCTL
help
This provides a kernel interface for creating and updating z/VM APPLDATA
monitor records. The monitor records are updated at certain time
--- a/arch/x86/kernel/cpu/bus_lock.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/arch/x86/kernel/cpu/bus_lock.c
@@ -50,7 +50,7 @@ static struct ratelimit_state bld_rateli
static unsigned int sysctl_sld_mitigate = 1;
static DEFINE_SEMAPHORE(buslock_sem, 1);
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static const struct ctl_table sld_sysctls[] = {
{
.procname = "split_lock_mitigate",
--- a/fs/proc/internal.h~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/fs/proc/internal.h
@@ -351,7 +351,7 @@ extern void proc_thread_self_init(void);
/*
* proc_sysctl.c
*/
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
extern int proc_sys_init(void);
extern void proc_sys_evict_inode(struct inode *inode,
struct ctl_table_header *head);
--- a/fs/proc/Kconfig~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/fs/proc/Kconfig
@@ -80,10 +80,9 @@ config PROC_VMCORE_DEVICE_RAM
Relevant architectures should select NEED_PROC_VMCORE_DEVICE_RAM.
-config PROC_SYSCTL
+config SYSCTL
bool "Sysctl support (/proc/sys)" if EXPERT
depends on PROC_FS
- select SYSCTL
default y
help
The sysctl interface provides a means of dynamically changing
--- a/fs/proc/Makefile~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/fs/proc/Makefile
@@ -29,7 +29,7 @@ proc-y += softirqs.o
proc-y += namespaces.o
proc-y += self.o
proc-y += thread_self.o
-proc-$(CONFIG_PROC_SYSCTL) += proc_sysctl.o
+proc-$(CONFIG_SYSCTL) += proc_sysctl.o
proc-$(CONFIG_NET) += proc_net.o
proc-$(CONFIG_PROC_KCORE) += kcore.o
proc-$(CONFIG_PROC_VMCORE) += vmcore.o
--- a/include/linux/utsname.h~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/include/linux/utsname.h
@@ -18,7 +18,7 @@ enum uts_proc {
UTS_PROC_DOMAINNAME,
};
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
extern void uts_proc_notify(enum uts_proc proc);
#else
static inline void uts_proc_notify(enum uts_proc proc)
--- a/init/Kconfig~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/init/Kconfig
@@ -1672,9 +1672,6 @@ config LD_ORPHAN_WARN_LEVEL
default "error" if WERROR
default "warn"
-config SYSCTL
- bool
-
config HAVE_UID16
bool
--- a/kernel/delayacct.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/kernel/delayacct.c
@@ -54,7 +54,7 @@ void delayacct_init(void)
set_delayacct(delayacct_on);
}
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static int sysctl_delayacct(const struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos)
{
--- a/kernel/sched/core.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/kernel/sched/core.c
@@ -4638,7 +4638,7 @@ void set_numabalancing_state(bool enable
__set_numabalancing_state(enabled);
}
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static void reset_memory_tiering(void)
{
struct pglist_data *pgdat;
@@ -4674,7 +4674,7 @@ static int sysctl_numa_balancing(const s
}
return err;
}
-#endif /* CONFIG_PROC_SYSCTL */
+#endif /* CONFIG_SYSCTL */
#endif /* CONFIG_NUMA_BALANCING */
#ifdef CONFIG_SCHEDSTATS
@@ -4718,7 +4718,7 @@ out:
}
__setup("schedstats=", setup_schedstats);
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static int sysctl_schedstats(const struct ctl_table *table, int write, void *buffer,
size_t *lenp, loff_t *ppos)
{
@@ -4738,7 +4738,7 @@ static int sysctl_schedstats(const struc
set_schedstats(state);
return err;
}
-#endif /* CONFIG_PROC_SYSCTL */
+#endif /* CONFIG_SYSCTL */
#endif /* CONFIG_SCHEDSTATS */
#ifdef CONFIG_SYSCTL
--- a/kernel/sched/topology.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/kernel/sched/topology.c
@@ -271,7 +271,7 @@ void rebuild_sched_domains_energy(void)
mutex_unlock(&sched_energy_mutex);
}
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static int sched_energy_aware_handler(const struct ctl_table *table, int write,
void *buffer, size_t *lenp, loff_t *ppos)
{
@@ -317,7 +317,7 @@ static int __init sched_energy_aware_sys
}
late_initcall(sched_energy_aware_sysctl_init);
-#endif /* CONFIG_PROC_SYSCTL */
+#endif /* CONFIG_SYSCTL */
static void free_pd(struct perf_domain *pd)
{
--- a/kernel/sysctl.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/kernel/sysctl.c
@@ -35,7 +35,7 @@ EXPORT_SYMBOL_GPL(sysctl_long_vals);
static const int ngroups_max = NGROUPS_MAX;
static const int cap_last_cap = CAP_LAST_CAP;
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
/**
* enum sysctl_writes_mode - supported sysctl write modes
@@ -64,14 +64,14 @@ enum sysctl_writes_mode {
};
static enum sysctl_writes_mode sysctl_writes_strict = SYSCTL_WRITES_STRICT;
-#endif /* CONFIG_PROC_SYSCTL */
+#endif /* CONFIG_SYSCTL */
#endif /* CONFIG_SYSCTL */
/*
* /proc/sys support
*/
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static int _proc_do_string(char *data, int maxlen, int dir,
char *buffer, size_t *lenp, loff_t *ppos)
@@ -1240,7 +1240,7 @@ int proc_do_large_bitmap(const struct ct
return err;
}
-#else /* CONFIG_PROC_SYSCTL */
+#else /* CONFIG_SYSCTL */
int proc_dostring(const struct ctl_table *table, int dir,
void *buffer, size_t *lenp, loff_t *ppos)
@@ -1338,7 +1338,7 @@ int proc_do_large_bitmap(const struct ct
return -ENOSYS;
}
-#endif /* CONFIG_PROC_SYSCTL */
+#endif /* CONFIG_SYSCTL */
#if defined(CONFIG_SYSCTL)
int proc_do_static_key(const struct ctl_table *table, int dir,
@@ -1372,7 +1372,7 @@ int proc_do_static_key(const struct ctl_
}
static const struct ctl_table sysctl_subsys_table[] = {
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
{
.procname = "sysctl_writes_strict",
.data = &sysctl_writes_strict,
--- a/kernel/time/jiffies.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/kernel/time/jiffies.c
@@ -98,7 +98,7 @@ void __init register_refined_jiffies(lon
__clocksource_register(&refined_jiffies);
}
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static ulong mult_hz(const ulong val)
{
return val * HZ;
@@ -185,7 +185,7 @@ static int do_proc_int_conv_ms_jiffies_m
sysctl_u2k_int_conv_ms, sysctl_k2u_int_conv_ms);
}
-#else // CONFIG_PROC_SYSCTL
+#else // CONFIG_SYSCTL
static int do_proc_int_conv_jiffies(bool *negp, ulong *u_ptr, int *k_ptr,
int dir, const struct ctl_table *tbl)
{
--- a/kernel/utsname_sysctl.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/kernel/utsname_sysctl.c
@@ -13,7 +13,7 @@
#include <linux/wait.h>
#include <linux/rwsem.h>
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
static void *get_uts(const struct ctl_table *table)
{
@@ -122,7 +122,7 @@ static const struct ctl_table uts_kern_t
},
};
-#ifdef CONFIG_PROC_SYSCTL
+#ifdef CONFIG_SYSCTL
/*
* Notify userspace about a change in a certain entry of uts_kern_table,
* identified by the parameter proc.
--- a/lib/Kconfig.debug~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/lib/Kconfig.debug
@@ -2682,7 +2682,7 @@ config TEST_FIRMWARE
config TEST_SYSCTL
tristate "sysctl test driver"
- depends on PROC_SYSCTL
+ depends on SYSCTL
help
This builds the "test_sysctl" module. This driver enables to test the
proc sysctl interfaces available to drivers safely without affecting
--- a/lib/test_sysctl.c~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/lib/test_sysctl.c
@@ -7,7 +7,7 @@
/*
* This module provides an interface to the proc sysctl interfaces. This
- * driver requires CONFIG_PROC_SYSCTL. It will not normally be loaded by the
+ * driver requires CONFIG_SYSCTL. It will not normally be loaded by the
* system unless explicitly requested by name. You can also build this driver
* into your kernel.
*/
--- a/net/mpls/Kconfig~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/net/mpls/Kconfig
@@ -26,7 +26,7 @@ config NET_MPLS_GSO
config MPLS_ROUTING
tristate "MPLS: routing support"
depends on NET_IP_TUNNEL || NET_IP_TUNNEL=n
- depends on PROC_SYSCTL
+ depends on SYSCTL
help
Add support for forwarding of mpls packets.
--- a/tools/testing/selftests/net/config~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/tools/testing/selftests/net/config
@@ -118,7 +118,7 @@ CONFIG_OPENVSWITCH_GENEVE=m
CONFIG_OPENVSWITCH_GRE=m
CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_PAGE_POOL_STATS=y
-CONFIG_PROC_SYSCTL=y
+CONFIG_SYSCTL=y
CONFIG_PSAMPLE=m
CONFIG_RPS=y
CONFIG_SYN_COOKIES=y
--- a/tools/testing/selftests/net/packetdrill/config~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/tools/testing/selftests/net/packetdrill/config
@@ -4,7 +4,7 @@ CONFIG_IPV6=y
CONFIG_NET_NS=y
CONFIG_NET_SCH_FIFO=y
CONFIG_NET_SCH_FQ=y
-CONFIG_PROC_SYSCTL=y
+CONFIG_SYSCTL=y
CONFIG_SYN_COOKIES=y
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_MD5SIG=y
--- a/tools/testing/selftests/wireguard/qemu/kernel.config~sysctl-remove-config_proc_sysctl-it-just-mirrors-config_sysctl
+++ a/tools/testing/selftests/wireguard/qemu/kernel.config
@@ -63,7 +63,7 @@ CONFIG_FILE_LOCKING=y
CONFIG_POSIX_TIMERS=y
CONFIG_DEVTMPFS=y
CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
+CONFIG_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=15
_
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-07-28 20:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-28 20:48 [patch 2/2] sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL Andrew Morton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.