diff options
Diffstat (limited to 'kernel/sysctl.c')
| -rw-r--r-- | kernel/sysctl.c | 63 |
1 files changed, 57 insertions, 6 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 3d56fe7570da..92f6e5bc3c24 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
| @@ -87,10 +87,6 @@ extern int rcutorture_runnable; | |||
| 87 | #endif /* #ifdef CONFIG_RCU_TORTURE_TEST */ | 87 | #endif /* #ifdef CONFIG_RCU_TORTURE_TEST */ |
| 88 | 88 | ||
| 89 | /* Constants used for minimum and maximum */ | 89 | /* Constants used for minimum and maximum */ |
| 90 | #if defined(CONFIG_HIGHMEM) || defined(CONFIG_DETECT_SOFTLOCKUP) | ||
| 91 | static int one = 1; | ||
| 92 | #endif | ||
| 93 | |||
| 94 | #ifdef CONFIG_DETECT_SOFTLOCKUP | 90 | #ifdef CONFIG_DETECT_SOFTLOCKUP |
| 95 | static int sixty = 60; | 91 | static int sixty = 60; |
| 96 | static int neg_one = -1; | 92 | static int neg_one = -1; |
| @@ -101,6 +97,7 @@ static int two = 2; | |||
| 101 | #endif | 97 | #endif |
| 102 | 98 | ||
| 103 | static int zero; | 99 | static int zero; |
| 100 | static int one = 1; | ||
| 104 | static int one_hundred = 100; | 101 | static int one_hundred = 100; |
| 105 | 102 | ||
| 106 | /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */ | 103 | /* this is needed for the proc_dointvec_minmax for [fs_]overflow UID and GID */ |
| @@ -121,6 +118,10 @@ extern int sg_big_buff; | |||
| 121 | #include <asm/system.h> | 118 | #include <asm/system.h> |
| 122 | #endif | 119 | #endif |
| 123 | 120 | ||
| 121 | #ifdef CONFIG_SPARC64 | ||
| 122 | extern int sysctl_tsb_ratio; | ||
| 123 | #endif | ||
| 124 | |||
| 124 | #ifdef __hppa__ | 125 | #ifdef __hppa__ |
| 125 | extern int pwrsw_enabled; | 126 | extern int pwrsw_enabled; |
| 126 | extern int unaligned_enabled; | 127 | extern int unaligned_enabled; |
| @@ -451,6 +452,16 @@ static struct ctl_table kern_table[] = { | |||
| 451 | .proc_handler = &proc_dointvec, | 452 | .proc_handler = &proc_dointvec, |
| 452 | }, | 453 | }, |
| 453 | #endif | 454 | #endif |
| 455 | #ifdef CONFIG_SPARC64 | ||
| 456 | { | ||
| 457 | .ctl_name = CTL_UNNUMBERED, | ||
| 458 | .procname = "tsb-ratio", | ||
| 459 | .data = &sysctl_tsb_ratio, | ||
| 460 | .maxlen = sizeof (int), | ||
| 461 | .mode = 0644, | ||
| 462 | .proc_handler = &proc_dointvec, | ||
| 463 | }, | ||
| 464 | #endif | ||
| 454 | #ifdef __hppa__ | 465 | #ifdef __hppa__ |
| 455 | { | 466 | { |
| 456 | .ctl_name = KERN_HPPA_PWRSW, | 467 | .ctl_name = KERN_HPPA_PWRSW, |
| @@ -487,6 +498,26 @@ static struct ctl_table kern_table[] = { | |||
| 487 | .proc_handler = &ftrace_enable_sysctl, | 498 | .proc_handler = &ftrace_enable_sysctl, |
| 488 | }, | 499 | }, |
| 489 | #endif | 500 | #endif |
| 501 | #ifdef CONFIG_STACK_TRACER | ||
| 502 | { | ||
| 503 | .ctl_name = CTL_UNNUMBERED, | ||
| 504 | .procname = "stack_tracer_enabled", | ||
| 505 | .data = &stack_tracer_enabled, | ||
| 506 | .maxlen = sizeof(int), | ||
| 507 | .mode = 0644, | ||
| 508 | .proc_handler = &stack_trace_sysctl, | ||
| 509 | }, | ||
| 510 | #endif | ||
| 511 | #ifdef CONFIG_TRACING | ||
| 512 | { | ||
| 513 | .ctl_name = CTL_UNNUMBERED, | ||
| 514 | .procname = "ftrace_dump_on_oops", | ||
| 515 | .data = &ftrace_dump_on_oops, | ||
| 516 | .maxlen = sizeof(int), | ||
| 517 | .mode = 0644, | ||
| 518 | .proc_handler = &proc_dointvec, | ||
| 519 | }, | ||
| 520 | #endif | ||
| 490 | #ifdef CONFIG_MODULES | 521 | #ifdef CONFIG_MODULES |
| 491 | { | 522 | { |
| 492 | .ctl_name = KERN_MODPROBE, | 523 | .ctl_name = KERN_MODPROBE, |
| @@ -918,12 +949,22 @@ static struct ctl_table vm_table[] = { | |||
| 918 | .data = &dirty_background_ratio, | 949 | .data = &dirty_background_ratio, |
| 919 | .maxlen = sizeof(dirty_background_ratio), | 950 | .maxlen = sizeof(dirty_background_ratio), |
| 920 | .mode = 0644, | 951 | .mode = 0644, |
| 921 | .proc_handler = &proc_dointvec_minmax, | 952 | .proc_handler = &dirty_background_ratio_handler, |
| 922 | .strategy = &sysctl_intvec, | 953 | .strategy = &sysctl_intvec, |
| 923 | .extra1 = &zero, | 954 | .extra1 = &zero, |
| 924 | .extra2 = &one_hundred, | 955 | .extra2 = &one_hundred, |
| 925 | }, | 956 | }, |
| 926 | { | 957 | { |
| 958 | .ctl_name = CTL_UNNUMBERED, | ||
| 959 | .procname = "dirty_background_bytes", | ||
| 960 | .data = &dirty_background_bytes, | ||
| 961 | .maxlen = sizeof(dirty_background_bytes), | ||
| 962 | .mode = 0644, | ||
| 963 | .proc_handler = &dirty_background_bytes_handler, | ||
| 964 | .strategy = &sysctl_intvec, | ||
| 965 | .extra1 = &one, | ||
| 966 | }, | ||
| 967 | { | ||
| 927 | .ctl_name = VM_DIRTY_RATIO, | 968 | .ctl_name = VM_DIRTY_RATIO, |
| 928 | .procname = "dirty_ratio", | 969 | .procname = "dirty_ratio", |
| 929 | .data = &vm_dirty_ratio, | 970 | .data = &vm_dirty_ratio, |
| @@ -935,6 +976,16 @@ static struct ctl_table vm_table[] = { | |||
| 935 | .extra2 = &one_hundred, | 976 | .extra2 = &one_hundred, |
| 936 | }, | 977 | }, |
| 937 | { | 978 | { |
| 979 | .ctl_name = CTL_UNNUMBERED, | ||
| 980 | .procname = "dirty_bytes", | ||
| 981 | .data = &vm_dirty_bytes, | ||
| 982 | .maxlen = sizeof(vm_dirty_bytes), | ||
| 983 | .mode = 0644, | ||
| 984 | .proc_handler = &dirty_bytes_handler, | ||
| 985 | .strategy = &sysctl_intvec, | ||
| 986 | .extra1 = &one, | ||
| 987 | }, | ||
| 988 | { | ||
| 938 | .procname = "dirty_writeback_centisecs", | 989 | .procname = "dirty_writeback_centisecs", |
| 939 | .data = &dirty_writeback_interval, | 990 | .data = &dirty_writeback_interval, |
| 940 | .maxlen = sizeof(dirty_writeback_interval), | 991 | .maxlen = sizeof(dirty_writeback_interval), |
| @@ -1651,7 +1702,7 @@ out: | |||
| 1651 | 1702 | ||
| 1652 | static int test_perm(int mode, int op) | 1703 | static int test_perm(int mode, int op) |
| 1653 | { | 1704 | { |
| 1654 | if (!current->euid) | 1705 | if (!current_euid()) |
| 1655 | mode >>= 6; | 1706 | mode >>= 6; |
| 1656 | else if (in_egroup_p(0)) | 1707 | else if (in_egroup_p(0)) |
| 1657 | mode >>= 3; | 1708 | mode >>= 3; |
