summaryrefslogtreecommitdiffstats
path: root/kernel/posix-cpu-timers.c
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@tv-sign.ru>2005-11-28 22:43:55 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-28 23:42:23 +0100
commitee500f274914653a7d3dfca7d0140a3d21658e32 (patch)
tree4b2b664e220e09d1a9cbcd69edebb16707b41e9b /kernel/posix-cpu-timers.c
parent[PATCH] fix broken lib/genalloc.c (diff)
downloadlinux-ee500f274914653a7d3dfca7d0140a3d21658e32.tar.xz
linux-ee500f274914653a7d3dfca7d0140a3d21658e32.zip
[PATCH] fix 32bit overflow in timespec_to_sample()
fix 32bit overflow in timespec_to_sample() Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/posix-cpu-timers.c')
-rw-r--r--kernel/posix-cpu-timers.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/posix-cpu-timers.c b/kernel/posix-cpu-timers.c
index 84af54c39e1b..cae4f5728997 100644
--- a/kernel/posix-cpu-timers.c
+++ b/kernel/posix-cpu-timers.c
@@ -36,7 +36,7 @@ timespec_to_sample(clockid_t which_clock, const struct timespec *tp)
union cpu_time_count ret;
ret.sched = 0; /* high half always zero when .cpu used */
if (CPUCLOCK_WHICH(which_clock) == CPUCLOCK_SCHED) {
- ret.sched = tp->tv_sec * NSEC_PER_SEC + tp->tv_nsec;
+ ret.sched = (unsigned long long)tp->tv_sec * NSEC_PER_SEC + tp->tv_nsec;
} else {
ret.cpu = timespec_to_cputime(tp);
}