Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/kernel/sysctl.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff -puN kernel/sysctl.c~add-do_proc_doulonglongvec_minmax-to-sysctl-functions-fix kernel/sysctl.c
--- 25/kernel/sysctl.c~add-do_proc_doulonglongvec_minmax-to-sysctl-functions-fix	2004-10-27 22:02:05.255392216 -0700
+++ 25-akpm/kernel/sysctl.c	2004-10-27 22:04:56.985285304 -0700
@@ -1873,7 +1873,8 @@ static int do_proc_doulonglongvec_minmax
 			}
 			if (*p < '0' || *p > '9')
 				break;
-			val = simple_strtoull(p, &p, 0) * convmul / convdiv ;
+			val = simple_strtoull(p, &p, 0) * convmul;
+			do_div(val, convdiv);
 			len = p-buf;
 			if ((len < left) && *p && !isspace(*p))
 				break;
@@ -1891,11 +1892,13 @@ static int do_proc_doulonglongvec_minmax
 			p = buf;
 			if (!first)
 				*p++ = '\t';
-			sprintf(p, "%llu", convdiv * (*i) / convmul);
+			val = convdiv * (*i);
+			do_div(val, convmul);
+			sprintf(p, "%llu", val);
 			len = strlen(buf);
 			if (len > left)
 				len = left;
-			if(copy_to_user(s, buf, len))
+			if (copy_to_user(s, buf, len))
 				return -EFAULT;
 			left -= len;
 			s += len;
_