summaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorSrivatsa Vaddagiri2005-09-17 04:27:40 +0200
committerLinus Torvalds2005-09-17 20:49:59 +0200
commit26ff6ad9786abf6f40a6d3cbb89753b4fa50cb00 (patch)
tree8abf9b85bc5f081460f05c3e8f76328dc690f167 /kernel/fork.c
parent[PATCH] Remove arch/arm26/boot/compressed/hw-bse.c (diff)
downloadkernel-qcow2-linux-26ff6ad9786abf6f40a6d3cbb89753b4fa50cb00.tar.gz
kernel-qcow2-linux-26ff6ad9786abf6f40a6d3cbb89753b4fa50cb00.tar.xz
kernel-qcow2-linux-26ff6ad9786abf6f40a6d3cbb89753b4fa50cb00.zip
[PATCH] CPU hotplug breaks wake_up_new_task
Fix a problem wherein a new-born task is added to a dead CPU. Signed-off-by: Srivatsa Vaddagiri <vatsa@in.ibm.com> Acked-by: Nick Piggin <nickpiggin@yahoo.com.au> Acked-by: Shaohua Li <shaohua.li@intel.com> Acked-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 8149f3602881..533ce27f4b2c 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1062,7 +1062,8 @@ static task_t *copy_process(unsigned long clone_flags,
* 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());
/*