From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F024416864 for ; Mon, 27 Jul 2026 14:47:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785163666; cv=none; b=pub3mhvZCTKt6qwvBkipjaZqq3UG9luF84Z4a0KD/rT4pW7qJDnLV5Cyu0qpHjWM4TOnMFrg6qJjM+g3MFCq9veI4wIs+nffyhCdrqs0IJTJxMrHISu5yd7soqog1gVOJh6LK33PhgydAoHvZ3kQyZ++5cq1IbKLSHpEQm7zGHs= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785163666; c=relaxed/simple; bh=ci8mIbV7EXerDOKZvIHLjHBpsWtJqeujA618YBFfmww=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=C5jAYZONzr1yy98VTuLhvkmi253WemVO+uPJOaQfkj6yaYKM0q2QR/SKdoWO4I0jvILdygTei8dcz2y/gtdgIaogjPY6KgZs15/UiXiXGtYNi10niUWYjgoRb4h0y5iBWywXVbhLEQtEuR4T2ymcBAMMLISr1CquSaAdDj5vKlE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=PoMuCNj1; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="PoMuCNj1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1785163663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=fKIcwbwTZwQ4x4LoWi+9WTP38Pda1aGuSQ5DkR5aLWE=; b=PoMuCNj1v8JuACzjs+y9xL8Kf6vhLd2R3+Ss7Hf6zG9DWwuce9JaF3xqYsOICi4RyNQmmF H5ST30derhRAnag4a1GR/XLLkIN/9j9JSLK/idqYFbbKbFsbD2/i47QDfFtF/mJIVsSWZs C7HkiPtRYoNKJ8x+pt+xzqSIZqWjvu8= Received: from mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-640-tBUI0nqSNeqmUpW3OY65-w-1; Mon, 27 Jul 2026 10:47:38 -0400 X-MC-Unique: tBUI0nqSNeqmUpW3OY65-w-1 X-Mimecast-MFC-AGG-ID: tBUI0nqSNeqmUpW3OY65-w_1785163655 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 201E419560AE; Mon, 27 Jul 2026 14:47:35 +0000 (UTC) Received: from fedora (unknown [10.44.33.21]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with SMTP id 56A6D1800613; Mon, 27 Jul 2026 14:47:24 +0000 (UTC) Received: by fedora (nbSMTP-1.00) for uid 1000 oleg@redhat.com; Mon, 27 Jul 2026 16:47:34 +0200 (CEST) Date: Mon, 27 Jul 2026 16:47:22 +0200 From: Oleg Nesterov To: Alexey Gladkov , Andrew Morton , "Eric W. Biederman" , Nathan Chancellor , Nicolas Schier Cc: Geert Uytterhoeven , Maxime Coquelin , Alexandre Torgue , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , Balbir Singh , Yang Yang , Peter Zijlstra , Juri Lelli , Vincent Guittot , Kees Cook , Joel Granados , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Shuah Khan , "Jason A. Donenfeld" , linux-kernel@vger.kernel.org Subject: [PATCH -mm v2 1/1] sysctl: remove CONFIG_PROC_SYSCTL, it just mirrors CONFIG_SYSCTL Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 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. Signed-off-by: Oleg Nesterov --- 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(-) diff --git a/arch/m68k/configs/amcore_defconfig b/arch/m68k/configs/amcore_defconfig index f310b5dacfd8..49f1de51d87e 100644 --- a/arch/m68k/configs/amcore_defconfig +++ b/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 diff --git a/arch/m68k/configs/stmark2_defconfig b/arch/m68k/configs/stmark2_defconfig index b3fb95f73a95..cd454369bfe8 100644 --- a/arch/m68k/configs/stmark2_defconfig +++ b/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 diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index 84404e6778d5..68dc2ebd6124 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig @@ -575,7 +575,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 @@ -893,7 +893,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 diff --git a/arch/x86/kernel/cpu/bus_lock.c b/arch/x86/kernel/cpu/bus_lock.c index bba28607a59a..177f964d4d36 100644 --- a/arch/x86/kernel/cpu/bus_lock.c +++ b/arch/x86/kernel/cpu/bus_lock.c @@ -50,7 +50,7 @@ static struct ratelimit_state bld_ratelimit; 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", diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig index 6ae966c561e7..24f5a36f45df 100644 --- a/fs/proc/Kconfig +++ b/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 diff --git a/fs/proc/Makefile b/fs/proc/Makefile index 8bc615ff84e5..27e2b26b2d42 100644 --- a/fs/proc/Makefile +++ b/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 diff --git a/fs/proc/internal.h b/fs/proc/internal.h index b232e1098117..04bd6c9e65a7 100644 --- a/fs/proc/internal.h +++ b/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); diff --git a/include/linux/utsname.h b/include/linux/utsname.h index 547bd4439706..dc5594ffffcc 100644 --- a/include/linux/utsname.h +++ b/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) diff --git a/init/Kconfig b/init/Kconfig index 5230d4879b1c..a505ab5be824 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1661,9 +1661,6 @@ config LD_ORPHAN_WARN_LEVEL default "error" if WERROR default "warn" -config SYSCTL - bool - config HAVE_UID16 bool diff --git a/kernel/delayacct.c b/kernel/delayacct.c index 2e55c493c98b..479e860aff70 100644 --- a/kernel/delayacct.c +++ b/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) { diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 96226707c2f6..ddedc1d6847b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4638,7 +4638,7 @@ void set_numabalancing_state(bool enabled) __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 struct ctl_table *table, int write, } return err; } -#endif /* CONFIG_PROC_SYSCTL */ +#endif /* CONFIG_SYSCTL */ #endif /* CONFIG_NUMA_BALANCING */ #ifdef CONFIG_SCHEDSTATS @@ -4718,7 +4718,7 @@ static int __init setup_schedstats(char *str) } __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 struct ctl_table *table, int write, void *buf set_schedstats(state); return err; } -#endif /* CONFIG_PROC_SYSCTL */ +#endif /* CONFIG_SYSCTL */ #endif /* CONFIG_SCHEDSTATS */ #ifdef CONFIG_SYSCTL diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c index 622e2e01974c..5a29e506c25d 100644 --- a/kernel/sched/topology.c +++ b/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_sysctl_init(void) } late_initcall(sched_energy_aware_sysctl_init); -#endif /* CONFIG_PROC_SYSCTL */ +#endif /* CONFIG_SYSCTL */ static void free_pd(struct perf_domain *pd) { diff --git a/kernel/sysctl.c b/kernel/sysctl.c index c9efb17cc255..eb852c304969 100644 --- a/kernel/sysctl.c +++ b/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 ctl_table *table, int dir, 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 ctl_table *table, int dir, 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_table *table, int dir, } static const struct ctl_table sysctl_subsys_table[] = { -#ifdef CONFIG_PROC_SYSCTL +#ifdef CONFIG_SYSCTL { .procname = "sysctl_writes_strict", .data = &sysctl_writes_strict, diff --git a/kernel/time/jiffies.c b/kernel/time/jiffies.c index d51428867a33..84c6bd8e742e 100644 --- a/kernel/time/jiffies.c +++ b/kernel/time/jiffies.c @@ -98,7 +98,7 @@ void __init register_refined_jiffies(long cycles_per_second) __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_minmax(bool *negp, ulong *u_ptr, 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) { diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c index bfbaaecb1dd4..6c1522201e39 100644 --- a/kernel/utsname_sysctl.c +++ b/kernel/utsname_sysctl.c @@ -13,7 +13,7 @@ #include #include -#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_table[] = { }, }; -#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. diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 1244dcac2294..73287ef2498c 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -2710,7 +2710,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 diff --git a/lib/test_sysctl.c b/lib/test_sysctl.c index c02aa9c868f2..909cfcf76dbf 100644 --- a/lib/test_sysctl.c +++ b/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. */ diff --git a/net/mpls/Kconfig b/net/mpls/Kconfig index d672ab72ab12..829fb1788b1c 100644 --- a/net/mpls/Kconfig +++ b/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. diff --git a/tools/testing/selftests/net/config b/tools/testing/selftests/net/config index e1ce35c2abbe..bea62d41db8d 100644 --- a/tools/testing/selftests/net/config +++ b/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 diff --git a/tools/testing/selftests/net/packetdrill/config b/tools/testing/selftests/net/packetdrill/config index c4a19a785521..83dde525c53c 100644 --- a/tools/testing/selftests/net/packetdrill/config +++ b/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 diff --git a/tools/testing/selftests/wireguard/qemu/kernel.config b/tools/testing/selftests/wireguard/qemu/kernel.config index bb89d2dfaa2a..368fd9d600c8 100644 --- a/tools/testing/selftests/wireguard/qemu/kernel.config +++ b/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 -- 2.52.0