public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Eric Biggers <ebiggers@kernel.org>
To: stable@vger.kernel.org, Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Kees Cook <keescook@chromium.org>, SeongJae Park <sj@kernel.org>,
	Seth Jenkins <sethjenkins@google.com>,
	Jann Horn <jannh@google.com>,
	"Eric W . Biederman" <ebiederm@xmission.com>,
	linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org,
	tangmeng <tangmeng@uniontech.com>,
	Luis Chamberlain <mcgrof@kernel.org>
Subject: [PATCH 5.10 02/20] kernel/panic: move panic sysctls to its own file
Date: Tue, 24 Jan 2023 11:29:46 -0800	[thread overview]
Message-ID: <20230124193004.206841-3-ebiggers@kernel.org> (raw)
In-Reply-To: <20230124193004.206841-1-ebiggers@kernel.org>

From: tangmeng <tangmeng@uniontech.com>

commit 9df918698408fd914493aba0b7858fef50eba63a upstream.

kernel/sysctl.c is a kitchen sink where everyone leaves their dirty
dishes, this makes it very difficult to maintain.

To help with this maintenance let's start by moving sysctls to places
where they actually belong.  The proc sysctl maintainers do not want to
know what sysctl knobs you wish to add for your own piece of code, we
just care about the core logic.

All filesystem syctls now get reviewed by fs folks. This commit
follows the commit of fs, move the oops_all_cpu_backtrace sysctl to
its own file, kernel/panic.c.

Signed-off-by: tangmeng <tangmeng@uniontech.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
 include/linux/kernel.h |  6 ------
 kernel/panic.c         | 26 +++++++++++++++++++++++++-
 kernel/sysctl.c        | 11 -----------
 3 files changed, 25 insertions(+), 18 deletions(-)

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index f5392d96d6886..084d97070ed99 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -520,12 +520,6 @@ static inline u32 int_sqrt64(u64 x)
 }
 #endif
 
-#ifdef CONFIG_SMP
-extern unsigned int sysctl_oops_all_cpu_backtrace;
-#else
-#define sysctl_oops_all_cpu_backtrace 0
-#endif /* CONFIG_SMP */
-
 extern void bust_spinlocks(int yes);
 extern int panic_timeout;
 extern unsigned long panic_print;
diff --git a/kernel/panic.c b/kernel/panic.c
index 332736a72a58e..f567195d45d9d 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -41,7 +41,9 @@
  * Should we dump all CPUs backtraces in an oops event?
  * Defaults to 0, can be changed via sysctl.
  */
-unsigned int __read_mostly sysctl_oops_all_cpu_backtrace;
+static unsigned int __read_mostly sysctl_oops_all_cpu_backtrace;
+#else
+#define sysctl_oops_all_cpu_backtrace 0
 #endif /* CONFIG_SMP */
 
 int panic_on_oops = CONFIG_PANIC_ON_OOPS_VALUE;
@@ -70,6 +72,28 @@ ATOMIC_NOTIFIER_HEAD(panic_notifier_list);
 
 EXPORT_SYMBOL(panic_notifier_list);
 
+#if defined(CONFIG_SMP) && defined(CONFIG_SYSCTL)
+static struct ctl_table kern_panic_table[] = {
+	{
+		.procname       = "oops_all_cpu_backtrace",
+		.data           = &sysctl_oops_all_cpu_backtrace,
+		.maxlen         = sizeof(int),
+		.mode           = 0644,
+		.proc_handler   = proc_dointvec_minmax,
+		.extra1         = SYSCTL_ZERO,
+		.extra2         = SYSCTL_ONE,
+	},
+	{ }
+};
+
+static __init int kernel_panic_sysctls_init(void)
+{
+	register_sysctl_init("kernel", kern_panic_table);
+	return 0;
+}
+late_initcall(kernel_panic_sysctls_init);
+#endif
+
 static long no_blink(int state)
 {
 	return 0;
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index 3eb527f8a269c..d8b7b28463135 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -2199,17 +2199,6 @@ static struct ctl_table kern_table[] = {
 		.proc_handler	= proc_dointvec,
 	},
 #endif
-#ifdef CONFIG_SMP
-	{
-		.procname	= "oops_all_cpu_backtrace",
-		.data		= &sysctl_oops_all_cpu_backtrace,
-		.maxlen		= sizeof(int),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec_minmax,
-		.extra1		= SYSCTL_ZERO,
-		.extra2		= SYSCTL_ONE,
-	},
-#endif /* CONFIG_SMP */
 	{
 		.procname	= "pid_max",
 		.data		= &pid_max,
-- 
2.39.1


  parent reply	other threads:[~2023-01-24 19:35 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-24 19:29 [PATCH 5.10 00/20] Backport oops_limit to 5.10 Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 01/20] sysctl: add a new register_sysctl_init() interface Eric Biggers
2023-01-24 19:29 ` Eric Biggers [this message]
2023-01-24 19:29 ` [PATCH 5.10 03/20] panic: unset panic_on_warn inside panic() Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 04/20] ubsan: no need to unset panic_on_warn in ubsan_epilogue() Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 05/20] kasan: no need to unset panic_on_warn in end_report() Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 06/20] exit: Add and use make_task_dead Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 07/20] objtool: Add a missing comma to avoid string concatenation Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 08/20] hexagon: Fix function name in die() Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 09/20] h8300: Fix build errors from do_exit() to make_task_dead() transition Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 10/20] csky: Fix function name in csky_alignment() and die() Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 11/20] ia64: make IA64_MCA_RECOVERY bool instead of tristate Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 12/20] panic: Separate sysctl logic from CONFIG_SMP Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 13/20] exit: Put an upper limit on how often we can oops Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 14/20] exit: Expose "oops_count" to sysfs Eric Biggers
2023-01-24 19:29 ` [PATCH 5.10 15/20] exit: Allow oops_limit to be disabled Eric Biggers
2023-01-24 19:30 ` [PATCH 5.10 16/20] panic: Consolidate open-coded panic_on_warn checks Eric Biggers
2023-01-24 19:30 ` [PATCH 5.10 17/20] panic: Introduce warn_limit Eric Biggers
2023-01-24 19:30 ` [PATCH 5.10 18/20] panic: Expose "warn_count" to sysfs Eric Biggers
2023-01-24 19:30 ` [PATCH 5.10 19/20] docs: Fix path paste-o for /sys/kernel/warn_count Eric Biggers
2023-01-24 19:30 ` [PATCH 5.10 20/20] exit: Use READ_ONCE() for all oops/warn limit reads Eric Biggers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230124193004.206841-3-ebiggers@kernel.org \
    --to=ebiggers@kernel.org \
    --cc=ebiederm@xmission.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jannh@google.com \
    --cc=keescook@chromium.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=sethjenkins@google.com \
    --cc=sj@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tangmeng@uniontech.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox