(based on lkml review)
* use rt_task()
* task_nice() has a sign
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
unsigned long slack;
int divfactor = 1000;
- if (task_nice(current))
+ if (task_nice(current) > 0)
divfactor = divfactor / 5;
slack = tv->tv_nsec / divfactor;
* 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);
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)