diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-04-20 09:05:55 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2012-04-26 06:06:12 -0400 |
commit | 2ec9415c71a1ddad969602e690a9c848b81256b3 (patch) | |
tree | 0d37d23337811c761effdac1217809175fb2e89d /arch/alpha/kernel | |
parent | ea0588cb6b201c38b0120c4ad38bc548d5dde29a (diff) |
alpha: Use generic idle thread allocation
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Cc: Matt Turner <mattst88@gmail.com>
Link: http://lkml.kernel.org/r/20120420124557.914631081@linutronix.de
Diffstat (limited to 'arch/alpha/kernel')
-rw-r--r-- | arch/alpha/kernel/smp.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index 68d39470fb52..35ddc02bfa4a 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
@@ -357,24 +357,10 @@ secondary_cpu_start(int cpuid, struct task_struct *idle) | |||
357 | * Bring one cpu online. | 357 | * Bring one cpu online. |
358 | */ | 358 | */ |
359 | static int __cpuinit | 359 | static int __cpuinit |
360 | smp_boot_one_cpu(int cpuid) | 360 | smp_boot_one_cpu(int cpuid, struct task_struct *idle) |
361 | { | 361 | { |
362 | struct task_struct *idle; | ||
363 | unsigned long timeout; | 362 | unsigned long timeout; |
364 | 363 | ||
365 | /* Cook up an idler for this guy. Note that the address we | ||
366 | give to kernel_thread is irrelevant -- it's going to start | ||
367 | where HWRPB.CPU_restart says to start. But this gets all | ||
368 | the other task-y sort of data structures set up like we | ||
369 | wish. We can't use kernel_thread since we must avoid | ||
370 | rescheduling the child. */ | ||
371 | idle = fork_idle(cpuid); | ||
372 | if (IS_ERR(idle)) | ||
373 | panic("failed fork for CPU %d", cpuid); | ||
374 | |||
375 | DBGS(("smp_boot_one_cpu: CPU %d state 0x%lx flags 0x%lx\n", | ||
376 | cpuid, idle->state, idle->flags)); | ||
377 | |||
378 | /* Signal the secondary to wait a moment. */ | 364 | /* Signal the secondary to wait a moment. */ |
379 | smp_secondary_alive = -1; | 365 | smp_secondary_alive = -1; |
380 | 366 | ||
@@ -489,7 +475,7 @@ smp_prepare_boot_cpu(void) | |||
489 | int __cpuinit | 475 | int __cpuinit |
490 | __cpu_up(unsigned int cpu, struct task_struct *tidle) | 476 | __cpu_up(unsigned int cpu, struct task_struct *tidle) |
491 | { | 477 | { |
492 | smp_boot_one_cpu(cpu); | 478 | smp_boot_one_cpu(cpu, tidle); |
493 | 479 | ||
494 | return cpu_online(cpu) ? 0 : -ENOSYS; | 480 | return cpu_online(cpu) ? 0 : -ENOSYS; |
495 | } | 481 | } |