Index: linux-2.6.9-rc3-bk8/kernel/sched.c =================================================================== --- linux-2.6.9-rc3-bk8.orig/kernel/sched.c 2004-10-09 00:12:26.536334222 +1000 +++ linux-2.6.9-rc3-bk8/kernel/sched.c 2004-10-09 00:13:02.551625469 +1000 @@ -598,8 +598,8 @@ static unsigned long ns_diff(unsigned lo vdiff = 1; else vdiff = v1 - v2; - if (vdiff > (1 << (BITS_PER_LONG - 1))) - vdiff = 1 << (BITS_PER_LONG - 1); + if (vdiff > (1 << 31)) + vdiff = 1 << 31; return (unsigned long)vdiff; } @@ -740,10 +740,10 @@ static void recalc_task_prio(task_t *p, unsigned int rr = RR_INTERVAL(); unsigned int best_burst = burst(p); unsigned int minrun = rr * (p->burst + 1) / (best_burst + 1) ? : 1; - if (p->flags & PF_FORKED || (p->mm && + if (p->flags & PF_FORKED || (NS_TO_JIFFIES(p->runtime + sleep_time) < minrun || ((!sched_interactive || sched_compute) && - NS_TO_JIFFIES(p->runtime + sleep_time) < rr)))) { + NS_TO_JIFFIES(p->runtime + sleep_time) < rr))) { unsigned long ns_totalrun = p->totalrun + p->runtime; unsigned long total_run = NS_TO_JIFFIES(ns_totalrun); p->flags &= ~PF_FORKED;