From: Mike Galbraith RT tasks are being awakened on the expired array when expired_starving() is true, whereas they really should be excluded. Fix. Signed-off-by: Mike Galbraith Acked-by: Ingo Molnar Cc: Con Kolivas Signed-off-by: Andrew Morton --- kernel/sched.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/sched.c~dont-awaken-rt-tasks-on-expired-array kernel/sched.c --- devel/kernel/sched.c~dont-awaken-rt-tasks-on-expired-array 2006-03-31 02:59:46.000000000 -0800 +++ devel-akpm/kernel/sched.c 2006-03-31 02:59:46.000000000 -0800 @@ -713,7 +713,7 @@ static void __activate_task(task_t *p, r { prio_array_t *target = rq->active; - if (unlikely(batch_task(p) || expired_starving(rq))) + if (unlikely(batch_task(p) || (expired_starving(rq) && !rt_task(p)))) target = rq->expired; enqueue_task(p, target); rq->nr_running++; _