Contributors: 23
Author |
Tokens |
Token Proportion |
Commits |
Commit Proportion |
nixiaoming |
159 |
44.79% |
3 |
9.68% |
Eric Dumazet |
63 |
17.75% |
1 |
3.23% |
Christoph Hellwig |
28 |
7.89% |
1 |
3.23% |
Art Haas |
24 |
6.76% |
1 |
3.23% |
Linus Torvalds (pre-git) |
20 |
5.63% |
3 |
9.68% |
Alexei Starovoitov |
10 |
2.82% |
2 |
6.45% |
Eric W. Biedermann |
9 |
2.54% |
3 |
9.68% |
Yang Ruirui |
6 |
1.69% |
1 |
3.23% |
Peter Zijlstra |
6 |
1.69% |
2 |
6.45% |
Hideaki Yoshifuji / 吉藤英明 |
5 |
1.41% |
1 |
3.23% |
Dan Ballard |
3 |
0.85% |
1 |
3.23% |
Matteo Croce |
3 |
0.85% |
1 |
3.23% |
Petr Mladek |
3 |
0.85% |
1 |
3.23% |
Dan Rosenberg |
3 |
0.85% |
1 |
3.23% |
Song Liu |
2 |
0.56% |
1 |
3.23% |
Christian Ehrhardt |
2 |
0.56% |
1 |
3.23% |
Linus Torvalds |
2 |
0.56% |
1 |
3.23% |
Al Viro |
2 |
0.56% |
1 |
3.23% |
Thomas Gleixner |
1 |
0.28% |
1 |
3.23% |
Andrew Morton |
1 |
0.28% |
1 |
3.23% |
Chenbo Feng |
1 |
0.28% |
1 |
3.23% |
Joel Granados |
1 |
0.28% |
1 |
3.23% |
Theodore Y. Ts'o |
1 |
0.28% |
1 |
3.23% |
Total |
355 |
|
31 |
|
// 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 *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);
}