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;
