Commit ea0588cb authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

sh: Use generic idle thread allocation



Signed-off-by: default avatarThomas 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-by: default avatarPaul Mundt <lethal@linux-sh.org>
Link: http://lkml.kernel.org/r/20120420124557.855203626@linutronix.de
parent 6bba2682
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ config SUPERH
	select RTC_LIB
	select GENERIC_ATOMIC64
	select GENERIC_IRQ_SHOW
	select GENERIC_SMP_IDLE_THREAD
	help
	  The SuperH is a RISC processor targeted for use in embedded systems
	  and consumer electronics; it was also used in the Sega Dreamcast
+0 −4
Original line number Diff line number Diff line
@@ -85,10 +85,6 @@ struct sh_cpuinfo {
	struct tlb_info itlb;
	struct tlb_info dtlb;

#ifdef CONFIG_SMP
	struct task_struct *idle;
#endif

	unsigned int phys_bits;
	unsigned long flags;
} __attribute__ ((aligned(L1_CACHE_BYTES)));
+1 −13
Original line number Diff line number Diff line
@@ -220,22 +220,10 @@ extern struct {
	void *thread_info;
} stack_start;

int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tsk)
{
	struct task_struct *tsk;
	unsigned long timeout;

	tsk = cpu_data[cpu].idle;
	if (!tsk) {
		tsk = fork_idle(cpu);
		if (IS_ERR(tsk)) {
			pr_err("Failed forking idle task for cpu %d\n", cpu);
			return PTR_ERR(tsk);
		}

		cpu_data[cpu].idle = tsk;
	}

	per_cpu(cpu_state, cpu) = CPU_UP_PREPARE;

	/* Fill in data in head.S for secondary cpus */