forked from nathanchance/WSL2-Linux-Kernel
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
printk: move printk sysctl to printk/sysctl.c
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. So move printk sysctl from kernel/sysctl.c to kernel/printk/sysctl.c. Use register_sysctl() to register the sysctl interface. [mcgrof@kernel.org: fixed compile issues when PRINTK is not set, commit log update] Link: https://lkml.kernel.org/r/20211124231435.1445213-6-mcgrof@kernel.org Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Amir Goldstein <amir73il@gmail.com> Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Cc: Antti Palosaari <crope@iki.fi> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Benjamin LaHaise <bcrl@kvack.org> Cc: Clemens Ladisch <clemens@ladisch.de> Cc: David Airlie <airlied@linux.ie> Cc: Douglas Gilbert <dgilbert@interlog.com> Cc: Eric Biederman <ebiederm@xmission.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Iurii Zaikin <yzaikin@google.com> Cc: James E.J. Bottomley <jejb@linux.ibm.com> Cc: Jani Nikula <jani.nikula@intel.com> Cc: Jani Nikula <jani.nikula@linux.intel.com> Cc: Jan Kara <jack@suse.cz> Cc: Joel Becker <jlbec@evilplan.org> Cc: John Ogness <john.ogness@linutronix.de> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com> Cc: Joseph Qi <joseph.qi@linux.alibaba.com> Cc: Julia Lawall <julia.lawall@inria.fr> Cc: Kees Cook <keescook@chromium.org> Cc: Lukas Middendorf <kernel@tuxforce.de> Cc: Mark Fasheh <mark@fasheh.com> Cc: Martin K. Petersen <martin.petersen@oracle.com> Cc: Paul Turner <pjt@google.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Petr Mladek <pmladek@suse.com> Cc: Phillip Potter <phil@philpotter.co.uk> Cc: Qing Wang <wangqing@vivo.com> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Sebastian Reichel <sre@kernel.org> Cc: Sergey Senozhatsky <senozhatsky@chromium.org> Cc: Stephen Kitt <steve@sk2.org> Cc: Steven Rostedt (VMware) <rostedt@goodmis.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Cc: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Loading branch information
1 parent
3ba442d
commit faaa357
Showing
5 changed files
with
96 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
// SPDX-License-Identifier: GPL-2.0-only | ||
/* | ||
* sysctl.c: General linux system control interface | ||
*/ | ||
|
||
#include <linux/sysctl.h> | ||
#include <linux/printk.h> | ||
#include <linux/capability.h> | ||
#include <linux/ratelimit.h> | ||
#include "internal.h" | ||
|
||
static const int ten_thousand = 10000; | ||
|
||
static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write, | ||
void __user *buffer, size_t *lenp, loff_t *ppos) | ||
{ | ||
if (write && !capable(CAP_SYS_ADMIN)) | ||
return -EPERM; | ||
|
||
return proc_dointvec_minmax(table, write, buffer, lenp, ppos); | ||
} | ||
|
||
static struct ctl_table printk_sysctls[] = { | ||
{ | ||
.procname = "printk", | ||
.data = &console_loglevel, | ||
.maxlen = 4*sizeof(int), | ||
.mode = 0644, | ||
.proc_handler = proc_dointvec, | ||
}, | ||
{ | ||
.procname = "printk_ratelimit", | ||
.data = &printk_ratelimit_state.interval, | ||
.maxlen = sizeof(int), | ||
.mode = 0644, | ||
.proc_handler = proc_dointvec_jiffies, | ||
}, | ||
{ | ||
.procname = "printk_ratelimit_burst", | ||
.data = &printk_ratelimit_state.burst, | ||
.maxlen = sizeof(int), | ||
.mode = 0644, | ||
.proc_handler = proc_dointvec, | ||
}, | ||
{ | ||
.procname = "printk_delay", | ||
.data = &printk_delay_msec, | ||
.maxlen = sizeof(int), | ||
.mode = 0644, | ||
.proc_handler = proc_dointvec_minmax, | ||
.extra1 = SYSCTL_ZERO, | ||
.extra2 = (void *)&ten_thousand, | ||
}, | ||
{ | ||
.procname = "printk_devkmsg", | ||
.data = devkmsg_log_str, | ||
.maxlen = DEVKMSG_STR_MAX_SIZE, | ||
.mode = 0644, | ||
.proc_handler = devkmsg_sysctl_set_loglvl, | ||
}, | ||
{ | ||
.procname = "dmesg_restrict", | ||
.data = &dmesg_restrict, | ||
.maxlen = sizeof(int), | ||
.mode = 0644, | ||
.proc_handler = proc_dointvec_minmax_sysadmin, | ||
.extra1 = SYSCTL_ZERO, | ||
.extra2 = SYSCTL_ONE, | ||
}, | ||
{ | ||
.procname = "kptr_restrict", | ||
.data = &kptr_restrict, | ||
.maxlen = sizeof(int), | ||
.mode = 0644, | ||
.proc_handler = proc_dointvec_minmax_sysadmin, | ||
.extra1 = SYSCTL_ZERO, | ||
.extra2 = SYSCTL_TWO, | ||
}, | ||
{} | ||
}; | ||
|
||
void __init printk_sysctl_init(void) | ||
{ | ||
register_sysctl_init("kernel", printk_sysctls); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters