diff options
Diffstat (limited to 'kernel/sched_rt.c')
| -rw-r--r-- | kernel/sched_rt.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index dcdcad632fd9..4b87476a02d0 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c | |||
| @@ -207,10 +207,15 @@ static void task_tick_rt(struct rq *rq, struct task_struct *p) | |||
| 207 | return; | 207 | return; |
| 208 | 208 | ||
| 209 | p->time_slice = static_prio_timeslice(p->static_prio); | 209 | p->time_slice = static_prio_timeslice(p->static_prio); |
| 210 | set_tsk_need_resched(p); | ||
| 211 | 210 | ||
| 212 | /* put it at the end of the queue: */ | 211 | /* |
| 213 | requeue_task_rt(rq, p); | 212 | * Requeue to the end of queue if we are not the only element |
| 213 | * on the queue: | ||
| 214 | */ | ||
| 215 | if (p->run_list.prev != p->run_list.next) { | ||
| 216 | requeue_task_rt(rq, p); | ||
| 217 | set_tsk_need_resched(p); | ||
| 218 | } | ||
| 214 | } | 219 | } |
| 215 | 220 | ||
| 216 | static struct sched_class rt_sched_class __read_mostly = { | 221 | static struct sched_class rt_sched_class __read_mostly = { |
