blackfin: Use generic idle thread allocation
authorThomas Gleixner <tglx@linutronix.de>
Fri, 20 Apr 2012 13:05:53 +0000 (13:05 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 26 Apr 2012 10:06:12 +0000 (12:06 +0200)
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: Mike Frysinger <vapier@gentoo.org>
Link: http://lkml.kernel.org/r/20120420124557.717064871@linutronix.de
arch/blackfin/Kconfig
arch/blackfin/mach-common/smp.c

index 373a6902d8fa6c7955732b1d1cb2d5911c24a431..779b9c846fd7fef590b2d374ceb47339aeaf558e 100644 (file)
@@ -37,6 +37,7 @@ config BLACKFIN
        select GENERIC_IRQ_PROBE
        select IRQ_PER_CPU if SMP
        select HAVE_NMI_WATCHDOG if NMI_WATCHDOG
+       select GENERIC_SMP_IDLE_THREAD
 
 config GENERIC_CSUM
        def_bool y
index d0cddd95b0dd5b1520f191dfa7b84f8f9ddff670..00bbe672b3b308433445d39461637f3a0d396573 100644 (file)
@@ -340,27 +340,10 @@ void smp_send_stop(void)
        return;
 }
 
-int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
+int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
 {
        int ret;
-       struct blackfin_cpudata *ci = &per_cpu(cpu_data, cpu);
-       struct task_struct *idle = ci->idle;
 
-       if (idle) {
-               free_task(idle);
-               idle = NULL;
-       }
-
-       if (!idle) {
-               idle = fork_idle(cpu);
-               if (IS_ERR(idle)) {
-                       printk(KERN_ERR "CPU%u: fork() failed\n", cpu);
-                       return PTR_ERR(idle);
-               }
-               ci->idle = idle;
-       } else {
-               init_idle(idle, cpu);
-       }
        secondary_stack = task_stack_page(idle) + THREAD_SIZE;
 
        ret = platform_boot_secondary(cpu, idle);