diff options
Diffstat (limited to 'arch/hexagon')
-rw-r--r-- | arch/hexagon/Kconfig | 1 | ||||
-rw-r--r-- | arch/hexagon/kernel/smp.c | 11 |
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 | ||
199 | int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle) | 199 | int __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. */ |