diff --git a/[refs] b/[refs] index 91e64a049086..907c3f72a151 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ad2a3f13b7258a5daaaeb8cff9f835aac468b71d +refs/heads/master: 15a8641eadb492ef7c5489faa25256967bdfd303 diff --git a/trunk/kernel/sched_rt.c b/trunk/kernel/sched_rt.c index 837241568d76..1dad5bbb59b6 100644 --- a/trunk/kernel/sched_rt.c +++ b/trunk/kernel/sched_rt.c @@ -549,8 +549,10 @@ static void requeue_rt_entity(struct rt_rq *rt_rq, struct sched_rt_entity *rt_se) { struct rt_prio_array *array = &rt_rq->active; + struct list_head *queue = array->queue + rt_se_prio(rt_se); - list_move_tail(&rt_se->run_list, array->queue + rt_se_prio(rt_se)); + if (on_rt_rq(rt_se)) + list_move_tail(&rt_se->run_list, queue); } static void requeue_task_rt(struct rq *rq, struct task_struct *p)