diff options
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 32b48e8ee36e..e82726faeeff 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -742,18 +742,18 @@ static ctl_table vm_table[] = { | |||
742 | { | 742 | { |
743 | .ctl_name = VM_DIRTY_WB_CS, | 743 | .ctl_name = VM_DIRTY_WB_CS, |
744 | .procname = "dirty_writeback_centisecs", | 744 | .procname = "dirty_writeback_centisecs", |
745 | .data = &dirty_writeback_centisecs, | 745 | .data = &dirty_writeback_interval, |
746 | .maxlen = sizeof(dirty_writeback_centisecs), | 746 | .maxlen = sizeof(dirty_writeback_interval), |
747 | .mode = 0644, | 747 | .mode = 0644, |
748 | .proc_handler = &dirty_writeback_centisecs_handler, | 748 | .proc_handler = &dirty_writeback_centisecs_handler, |
749 | }, | 749 | }, |
750 | { | 750 | { |
751 | .ctl_name = VM_DIRTY_EXPIRE_CS, | 751 | .ctl_name = VM_DIRTY_EXPIRE_CS, |
752 | .procname = "dirty_expire_centisecs", | 752 | .procname = "dirty_expire_centisecs", |
753 | .data = &dirty_expire_centisecs, | 753 | .data = &dirty_expire_interval, |
754 | .maxlen = sizeof(dirty_expire_centisecs), | 754 | .maxlen = sizeof(dirty_expire_interval), |
755 | .mode = 0644, | 755 | .mode = 0644, |
756 | .proc_handler = &proc_dointvec, | 756 | .proc_handler = &proc_dointvec_userhz_jiffies, |
757 | }, | 757 | }, |
758 | { | 758 | { |
759 | .ctl_name = VM_NR_PDFLUSH_THREADS, | 759 | .ctl_name = VM_NR_PDFLUSH_THREADS, |
@@ -848,9 +848,8 @@ static ctl_table vm_table[] = { | |||
848 | .data = &laptop_mode, | 848 | .data = &laptop_mode, |
849 | .maxlen = sizeof(laptop_mode), | 849 | .maxlen = sizeof(laptop_mode), |
850 | .mode = 0644, | 850 | .mode = 0644, |
851 | .proc_handler = &proc_dointvec, | 851 | .proc_handler = &proc_dointvec_jiffies, |
852 | .strategy = &sysctl_intvec, | 852 | .strategy = &sysctl_jiffies, |
853 | .extra1 = &zero, | ||
854 | }, | 853 | }, |
855 | { | 854 | { |
856 | .ctl_name = VM_BLOCK_DUMP, | 855 | .ctl_name = VM_BLOCK_DUMP, |
@@ -2054,6 +2053,8 @@ static int do_proc_dointvec_jiffies_conv(int *negp, unsigned long *lvalp, | |||
2054 | int write, void *data) | 2053 | int write, void *data) |
2055 | { | 2054 | { |
2056 | if (write) { | 2055 | if (write) { |
2056 | if (*lvalp > LONG_MAX / HZ) | ||
2057 | return 1; | ||
2057 | *valp = *negp ? -(*lvalp*HZ) : (*lvalp*HZ); | 2058 | *valp = *negp ? -(*lvalp*HZ) : (*lvalp*HZ); |
2058 | } else { | 2059 | } else { |
2059 | int val = *valp; | 2060 | int val = *valp; |
@@ -2075,6 +2076,8 @@ static int do_proc_dointvec_userhz_jiffies_conv(int *negp, unsigned long *lvalp, | |||
2075 | int write, void *data) | 2076 | int write, void *data) |
2076 | { | 2077 | { |
2077 | if (write) { | 2078 | if (write) { |
2079 | if (USER_HZ < HZ && *lvalp > (LONG_MAX / HZ) * USER_HZ) | ||
2080 | return 1; | ||
2078 | *valp = clock_t_to_jiffies(*negp ? -*lvalp : *lvalp); | 2081 | *valp = clock_t_to_jiffies(*negp ? -*lvalp : *lvalp); |
2079 | } else { | 2082 | } else { |
2080 | int val = *valp; | 2083 | int val = *valp; |