the attached patch fixes set_cpus_allowed() to set p->state *before*
sending the migration IPI. This is a rare codepath used during bootup
only, so the race was never seen in action. The bug was noticed by Robert
Love.
Ingo
--- linux/kernel/sched.c.orig Fri Jan 25 10:44:18 2002
+++ linux/kernel/sched.c Fri Jan 25 12:06:36 2002
@@ -803,9 +837,9 @@
if (new_mask & (1UL << smp_processor_id()))
return;
#if CONFIG_SMP
+ current->state = TASK_UNINTERRUPTIBLE;
smp_migrate_task(ffz(~new_mask), current);
- current->state = TASK_UNINTERRUPTIBLE;
schedule();
#endif
}
-
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/
This archive was generated by hypermail 2b29 : Thu Jan 31 2002 - 21:00:31 EST