提交 787c0558 编写于 作者: T tangmeng 提交者: sanglipeng

kernel/panic: move panic sysctls to its own file

stable inclusion
from stable-v5.10.166
commit e97ec099d7fd2d963414bb9f5a0e895603d79b7b
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7TH9O

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e97ec099d7fd2d963414bb9f5a0e895603d79b7b

--------------------------------

commit 9df91869 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: Ntangmeng <tangmeng@uniontech.com>
Signed-off-by: NLuis Chamberlain <mcgrof@kernel.org>
Signed-off-by: NEric Biggers <ebiggers@google.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: Nsanglipeng <sanglipeng1@jd.com>
上级 afe8b4b6
...@@ -538,12 +538,6 @@ static inline u32 int_sqrt64(u64 x) ...@@ -538,12 +538,6 @@ static inline u32 int_sqrt64(u64 x)
} }
#endif #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 void bust_spinlocks(int yes);
extern int panic_timeout; extern int panic_timeout;
extern unsigned long panic_print; extern unsigned long panic_print;
......
...@@ -41,7 +41,9 @@ ...@@ -41,7 +41,9 @@
* Should we dump all CPUs backtraces in an oops event? * Should we dump all CPUs backtraces in an oops event?
* Defaults to 0, can be changed via sysctl. * 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 */ #endif /* CONFIG_SMP */
int panic_on_oops = CONFIG_PANIC_ON_OOPS_VALUE; int panic_on_oops = CONFIG_PANIC_ON_OOPS_VALUE;
...@@ -70,6 +72,28 @@ ATOMIC_NOTIFIER_HEAD(panic_notifier_list); ...@@ -70,6 +72,28 @@ ATOMIC_NOTIFIER_HEAD(panic_notifier_list);
EXPORT_SYMBOL(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) static long no_blink(int state)
{ {
return 0; return 0;
......
...@@ -2205,17 +2205,6 @@ static struct ctl_table kern_table[] = { ...@@ -2205,17 +2205,6 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec, .proc_handler = proc_dointvec,
}, },
#endif #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 = "panic_on_oops", .procname = "panic_on_oops",
.data = &panic_on_oops, .data = &panic_on_oops,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册