aboutsummaryrefslogtreecommitdiffstats
path: root/arch/hexagon
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-04-20 09:05:51 -0400
committerThomas Gleixner <tglx@linutronix.de>2012-04-26 06:06:11 -0400
commit3b0132ce4fff68b30abdfcb74cffc283af711076 (patch)
treea25f18a9a9683bb15bd95a1a133c5c8ae4040d1b /arch/hexagon
parent360014a36170464ebd9935514f0e0e3d558b0e56 (diff)
hexagon: 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> Acked-and-tested-by: Richard Kuo <rkuo@codeaurora.org> Link: http://lkml.kernel.org/r/20120420124557.581762105@linutronix.de
Diffstat (limited to 'arch/hexagon')
-rw-r--r--arch/hexagon/Kconfig1
-rw-r--r--arch/hexagon/kernel/smp.c11
2 files changed, 3 insertions, 9 deletions
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig
index 9059e3905887..d2e4a3330336 100644
--- a/arch/hexagon/Kconfig
+++ b/arch/hexagon/Kconfig
@@ -27,6 +27,7 @@ config HEXAGON
27 select HAVE_ARCH_TRACEHOOK 27 select HAVE_ARCH_TRACEHOOK
28 select NO_IOPORT 28 select NO_IOPORT
29 select GENERIC_IOMAP 29 select GENERIC_IOMAP
30 select GENERIC_SMP_IDLE_THREAD
30 # mostly generic routines, with some accelerated ones 31 # mostly generic routines, with some accelerated ones
31 ---help--- 32 ---help---
32 Qualcomm Hexagon is a processor architecture designed for high 33 Qualcomm Hexagon is a processor architecture designed for high
diff --git a/arch/hexagon/kernel/smp.c b/arch/hexagon/kernel/smp.c
index 93e77e2b17a8..f7264621e58d 100644
--- a/arch/hexagon/kernel/smp.c
+++ b/arch/hexagon/kernel/smp.c
@@ -196,18 +196,11 @@ void __cpuinit start_secondary(void)
196 * maintains control until "cpu_online(cpu)" is set. 196 * maintains control until "cpu_online(cpu)" is set.
197 */ 197 */
198 198
199int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle) 199int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
200{ 200{
201 struct task_struct *idle; 201 struct thread_info *thread = (struct thread_info *)idle->stack;
202 struct thread_info *thread;
203 void *stack_start; 202 void *stack_start;
204 203
205 /* Create new init task for the CPU */
206 idle = fork_idle(cpu);
207 if (IS_ERR(idle))
208 panic(KERN_ERR "fork_idle failed\n");
209
210 thread = (struct thread_info *)idle->stack;
211 thread->cpu = cpu; 204 thread->cpu = cpu;
212 205
213 /* Boot to the head. */ 206 /* Boot to the head. */