2004-11-02 15:10:59

by Martin Schwidefsky

[permalink] [raw]
Subject: [patch] cputime: fix do_setitimer.

[patch] cputime: fix do_setitimer.

From: Martin Schwidefsky <[email protected]>

Fix do_setitimer for ITIMER_VIRTUAL and ITIMER_PROF. Non-zero
it_virt_value and it_prof_value needs to get increamented by one
jiffies. Applications like konqueror depend on this behaviour.

Signed-off-by: Martin Schwidefsky <[email protected]>

diffstat:
kernel/itimer.c | 10 ++++++----
1 files changed, 6 insertions(+), 4 deletions(-)

diff -urN linux-2.6/kernel/itimer.c linux-2.6-cputime/kernel/itimer.c
--- linux-2.6/kernel/itimer.c 2004-11-02 14:30:36.000000000 +0100
+++ linux-2.6-cputime/kernel/itimer.c 2004-11-02 14:31:42.000000000 +0100
@@ -102,16 +102,18 @@
break;
case ITIMER_VIRTUAL:
cputime = timeval_to_cputime(&value->it_value);
- if (cputime_eq(cputime, cputime_zero))
- cputime = jiffies_to_cputime(1);
+ if (cputime_gt(cputime, cputime_zero))
+ cputime = cputime_add(cputime,
+ jiffies_to_cputime(1));
current->it_virt_value = cputime;
cputime = timeval_to_cputime(&value->it_interval);
current->it_virt_incr = cputime;
break;
case ITIMER_PROF:
cputime = timeval_to_cputime(&value->it_value);
- if (cputime_eq(cputime, cputime_zero))
- cputime = jiffies_to_cputime(1);
+ if (cputime_gt(cputime, cputime_zero))
+ cputime = cputime_add(cputime,
+ jiffies_to_cputime(1));
current->it_prof_value = cputime;
cputime = timeval_to_cputime(&value->it_interval);
current->it_prof_incr = cputime;