--- linux-2.6.0-test3-mm2-O16.2/kernel/sched.c 2003-08-18 00:03:53.000000000 +1000 +++ linux-2.6.0-test3-mm2-O16.3/kernel/sched.c 2003-08-18 00:44:20.000000000 +1000 @@ -609,9 +609,8 @@ repeat_lock_task: __activate_task(p, rq); else { activate_task(p, rq); - if (TASK_PREEMPTS_CURR(p, rq) && - (in_interrupt() || !p->mm)) - resched_task(rq->curr); + if (TASK_PREEMPTS_CURR(p, rq)) + resched_task(rq->curr); } success = 1; }