OK, this patch fixed it. I don't know why.
--- linux-2.5.7/kernel/sched.c Mon Mar 18 13:04:41 2002
+++ 25/kernel/sched.c Sun Mar 24 18:09:09 2002
@@ -1545,6 +1545,8 @@ void set_cpus_allowed(task_t *p, unsigne
migration_req_t req;
runqueue_t *rq;
+ preempt_disable();
+
new_mask &= cpu_online_map;
if (!new_mask)
BUG();
@@ -1557,7 +1559,7 @@ void set_cpus_allowed(task_t *p, unsigne
*/
if (new_mask & (1UL << p->thread_info->cpu)) {
task_rq_unlock(rq, &flags);
- return;
+ goto out;
}
init_MUTEX_LOCKED(&req.sem);
@@ -1567,6 +1569,8 @@ void set_cpus_allowed(task_t *p, unsigne
wake_up_process(rq->migration_thread);
down(&req.sem);
+out:
+ preempt_disable();
}
static volatile unsigned long migration_mask;
-
-
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/