Browse Source

Merge do_boot_cpu() into the new style __cpu_up().

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Ralf Baechle 20 years ago
parent
commit
b727a60258
1 changed files with 9 additions and 21 deletions
  1. 9 21
      arch/mips/kernel/smp.c

+ 9 - 21
arch/mips/kernel/smp.c

@@ -248,23 +248,28 @@ void __devinit smp_prepare_boot_cpu(void)
 }
 }
 
 
 /*
 /*
- * Startup the CPU with this logical number
+ * Called once for each "cpu_possible(cpu)".  Needs to spin up the cpu
+ * and keep control until "cpu_online(cpu)" is set.  Note: cpu is
+ * physical, not logical.
  */
  */
-static int __init do_boot_cpu(int cpu)
+int __devinit __cpu_up(unsigned int cpu)
 {
 {
 	struct task_struct *idle;
 	struct task_struct *idle;
 
 
 	/*
 	/*
+	 * Processor goes to start_secondary(), sets online flag
 	 * The following code is purely to make sure
 	 * The following code is purely to make sure
 	 * Linux can schedule processes on this slave.
 	 * Linux can schedule processes on this slave.
 	 */
 	 */
 	idle = fork_idle(cpu);
 	idle = fork_idle(cpu);
 	if (IS_ERR(idle))
 	if (IS_ERR(idle))
-		panic("failed fork for CPU %d\n", cpu);
+		panic(KERN_ERR "Fork failed for CPU %d", cpu);
 
 
 	prom_boot_secondary(cpu, idle);
 	prom_boot_secondary(cpu, idle);
 
 
-	/* XXXKW timeout */
+	/*
+	 * Trust is futile.  We should really have timeouts ...
+	 */
 	while (!cpu_isset(cpu, cpu_callin_map))
 	while (!cpu_isset(cpu, cpu_callin_map))
 		udelay(100);
 		udelay(100);
 
 
@@ -273,23 +278,6 @@ static int __init do_boot_cpu(int cpu)
 	return 0;
 	return 0;
 }
 }
 
 
-/*
- * Called once for each "cpu_possible(cpu)".  Needs to spin up the cpu
- * and keep control until "cpu_online(cpu)" is set.  Note: cpu is
- * physical, not logical.
- */
-int __devinit __cpu_up(unsigned int cpu)
-{
-	int ret;
-
-	/* Processor goes to start_secondary(), sets online flag */
-	ret = do_boot_cpu(cpu);
-	if (ret < 0)
-		return ret;
-
-	return 0;
-}
-
 /* Not really SMP stuff ... */
 /* Not really SMP stuff ... */
 int setup_profiling_timer(unsigned int multiplier)
 int setup_profiling_timer(unsigned int multiplier)
 {
 {