From: Srivatsa Vaddagiri Fix a problem wherein a new-born task is added to a dead CPU. Signed-off-by: Srivatsa Vaddagiri Acked-by: Nick Piggin Acked-by: Shaohua Li Acked-by: Ingo Molnar Signed-off-by: Andrew Morton --- kernel/fork.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN kernel/fork.c~cpu-hotplug-breaks-wake_up_new_task kernel/fork.c --- devel/kernel/fork.c~cpu-hotplug-breaks-wake_up_new_task 2005-09-15 01:28:21.000000000 -0700 +++ devel-akpm/kernel/fork.c 2005-09-15 01:28:21.000000000 -0700 @@ -1062,7 +1062,8 @@ static task_t *copy_process(unsigned lon * parent's CPU). This avoids alot of nasty races. */ p->cpus_allowed = current->cpus_allowed; - if (unlikely(!cpu_isset(task_cpu(p), p->cpus_allowed))) + if (unlikely(!cpu_isset(task_cpu(p), p->cpus_allowed) || + !cpu_online(task_cpu(p)))) set_task_cpu(p, smp_processor_id()); /* _