--- linux-2.6.7-rc3-ck0/kernel/sched.c 2004-06-10 23:47:01.000000000 +1000 +++ linux-2.6.7-rc3-s6.8/kernel/sched.c 2004-06-11 01:20:48.628678879 +1000 @@ -192,8 +192,8 @@ static int task_preempts_curr(struct tas { if (p->prio >= rq->curr->prio) return 0; - if (rq->cache_ticks >= cache_decay_ticks || !compute || - rt_task(p) || rq->curr == rq->idle) + if (!compute || rq->cache_ticks >= cache_decay_ticks || + rt_task(p) || !p->mm || rq->curr == rq->idle) return 1; rq->preempted = 1; return 0;