[patch] [sched] fork-fix 2.5.3-pre5

Ingo Molnar (mingo@elte.hu)
Fri, 25 Jan 2002 15:10:16 +0100 (CET)


the patch below fixes a fork() bug introduced by the new scheduler. If the
parent process schedules away and gets rebalanced to another CPU then
wake_up_forked_process() does runqueue manipulation incorrectly.

the crash was first reported by Robert Love, it happened with the
preemption patches applied. Later the crash was reproduced on the 2.4 +
O(1) kernel as well, using Cerberus.

Ingo

--- linux/kernel/sched.c.orig Fri Jan 25 10:44:18 2002
+++ linux/kernel/sched.c Fri Jan 25 12:06:36 2002
@@ -275,6 +293,7 @@
p->prio = effective_prio(p);
}
spin_lock_irq(&rq->lock);
+ p->cpu = smp_processor_id();
activate_task(p, rq);
spin_unlock_irq(&rq->lock);
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/