diff -Nurp -X linux-RT/Documentation/dontdiff linux-RT/kernel/sched.c linux-RT.mich/kernel/sched.c --- linux-RT/kernel/sched.c 2005-06-09 23:09:43.000000000 +0200 +++ linux-RT.mich/kernel/sched.c 2005-06-09 23:07:43.000000000 +0200 @@ -1195,11 +1195,13 @@ out_activate: if (TASK_PREEMPTS_CURR(p, rq)) resched_task(rq->curr); } else { - __activate_task(p, rq); - if (TASK_PREEMPTS_CURR(p, rq)) { - if (sync) + if (sync) { + __activate_task(p, rq); + if (TASK_PREEMPTS_CURR(p, rq)) set_tsk_need_resched_delayed(rq->curr); - else + } else { + activate_task(p, rq, cpu == this_cpu); + if (TASK_PREEMPTS_CURR(p, rq)) resched_task(rq->curr); } }