aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-04-20 13:05:51 +0000
committerThomas Gleixner <tglx@linutronix.de>2012-04-26 12:06:11 +0200
commit3b0132ce4fff68b30abdfcb74cffc283af711076 (patch)
treea25f18a9a9683bb15bd95a1a133c5c8ae4040d1b
parent360014a36170464ebd9935514f0e0e3d558b0e56 (diff)
downloadkernel_goldelico_gta04-3b0132ce4fff68b30abdfcb74cffc283af711076.zip
kernel_goldelico_gta04-3b0132ce4fff68b30abdfcb74cffc283af711076.tar.gz
kernel_goldelico_gta04-3b0132ce4fff68b30abdfcb74cffc283af711076.tar.bz2
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
-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 9059e39..d2e4a33 100644
--- a/arch/hexagon/Kconfig
+++ b/arch/hexagon/Kconfig
@@ -27,6 +27,7 @@ config HEXAGON
select HAVE_ARCH_TRACEHOOK
select NO_IOPORT
select GENERIC_IOMAP
+ select GENERIC_SMP_IDLE_THREAD
# mostly generic routines, with some accelerated ones
---help---
Qualcomm Hexagon is a processor architecture designed for high
diff --git a/arch/hexagon/kernel/smp.c b/arch/hexagon/kernel/smp.c
index 93e77e2..f726462 100644
--- a/arch/hexagon/kernel/smp.c
+++ b/arch/hexagon/kernel/smp.c
@@ -196,18 +196,11 @@ void __cpuinit start_secondary(void)
* maintains control until "cpu_online(cpu)" is set.
*/
-int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
+int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *idle)
{
- struct task_struct *idle;
- struct thread_info *thread;
+ struct thread_info *thread = (struct thread_info *)idle->stack;
void *stack_start;
- /* Create new init task for the CPU */
- idle = fork_idle(cpu);
- if (IS_ERR(idle))
- panic(KERN_ERR "fork_idle failed\n");
-
- thread = (struct thread_info *)idle->stack;
thread->cpu = cpu;
/* Boot to the head. */