]> err.no Git - linux-2.6/blobdiff - kernel/itimer.c
[PATCH] kexec code cleanup
[linux-2.6] / kernel / itimer.c
index e9a40e947e079615650c2491eddf7d7b35fdea9f..1dc988e0d2c77e962063c776b7b035800f51b9be 100644 (file)
@@ -123,7 +123,11 @@ static inline void it_real_arm(struct task_struct *p, unsigned long interval)
                return;
        if (interval > (unsigned long) LONG_MAX)
                interval = LONG_MAX;
-       p->signal->real_timer.expires = jiffies + interval;
+       /* the "+ 1" below makes sure that the timer doesn't go off before
+        * the interval requested. This could happen if
+        * time requested % (usecs per jiffy) is more than the usecs left
+        * in the current jiffy */
+       p->signal->real_timer.expires = jiffies + interval + 1;
        add_timer(&p->signal->real_timer);
 }