aboutsummaryrefslogtreecommitdiffstats
path: root/arch/hexagon
diff options
context:
space:
mode:
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 9059e390588..d2e4a333033 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 93e77e2b17a..f7264621e58 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. */