hrtimer: incorporate feedback from Peter Zijlstra
authorArjan van de Ven <arjan@linux.intel.com>
Sun, 7 Sep 2008 22:31:39 +0000 (15:31 -0700)
committerArjan van de Ven <arjan@linux.intel.com>
Sun, 7 Sep 2008 22:31:39 +0000 (15:31 -0700)
(based on  lkml review)
* use rt_task()
* task_nice() has a sign

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
fs/select.c
include/linux/hrtimer.h

index 5e61b43..fdd8584 100644 (file)
@@ -46,7 +46,7 @@ static unsigned long __estimate_accuracy(struct timespec *tv)
        unsigned long slack;
        int divfactor = 1000;
 
-       if (task_nice(current))
+       if (task_nice(current) > 0)
                divfactor = divfactor / 5;
 
        slack = tv->tv_nsec / divfactor;
@@ -66,8 +66,7 @@ static unsigned long estimate_accuracy(struct timespec *tv)
         * Realtime tasks get a slack of 0 for obvious reasons.
         */
 
-       if (current->policy == SCHED_FIFO ||
-               current->policy == SCHED_RR)
+       if (rt_task(current))
                return 0;
 
        ktime_get_ts(&now);
index 1c0473e..95db11f 100644 (file)
@@ -363,7 +363,7 @@ static inline int hrtimer_start_expires(struct hrtimer *timer,
        soft = hrtimer_get_softexpires(timer);
        hard = hrtimer_get_expires(timer);
        delta = ktime_to_ns(ktime_sub(hard, soft));
-       return hrtimer_start_range_ns(timer, hrtimer_get_expires(timer), delta, mode);
+       return hrtimer_start_range_ns(timer, soft, delta, mode);
 }
 
 static inline int hrtimer_restart(struct hrtimer *timer)