[patch] [sched] set_cpus_allowed() fix, 2.5.3-pre5

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


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/