summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@linux.intel.com>2008-09-07 15:31:39 -0700
committerArjan van de Ven <arjan@linux.intel.com>2008-09-07 15:31:39 -0700
commit4ce105d30e08fb8a1783c55a0e48aa3fa200c455 (patch)
tree1bfc0b3d4f987e69b16cb35dfc3dedf9ab288b1b
parentda8f2e170ea94cc20f8ebbc8ee8d127edb8f12f1 (diff)
downloadop-kernel-dev-4ce105d30e08fb8a1783c55a0e48aa3fa200c455.zip
op-kernel-dev-4ce105d30e08fb8a1783c55a0e48aa3fa200c455.tar.gz
hrtimer: incorporate feedback from Peter Zijlstra
(based on lkml review) * use rt_task() * task_nice() has a sign Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
-rw-r--r--fs/select.c5
-rw-r--r--include/linux/hrtimer.h2
2 files changed, 3 insertions, 4 deletions
diff --git a/fs/select.c b/fs/select.c
index 5e61b43..fdd8584 100644
--- a/fs/select.c
+++ b/fs/select.c
@@ -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);
diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 1c0473e..95db11f 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -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)
OpenPOWER on IntegriCloud