X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Ffork.c;h=533ce27f4b2c0938f91c948aa682bc992579ba96;hb=31f6d9d628739c097964b8dbae939ea997da94a3;hp=8149f3602881db80727310245436c97a661adf2a;hpb=d58dde0f552a5c5c4485b962d8b6e9dd54fefb30;p=~andy%2Flinux diff --git a/kernel/fork.c b/kernel/fork.c index 8149f360288..533ce27f4b2 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()); /*