|
@@ -357,24 +357,10 @@ secondary_cpu_start(int cpuid, struct task_struct *idle)
|
|
|
* Bring one cpu online.
|
|
|
*/
|
|
|
static int __cpuinit
|
|
|
-smp_boot_one_cpu(int cpuid)
|
|
|
+smp_boot_one_cpu(int cpuid, struct task_struct *idle)
|
|
|
{
|
|
|
- struct task_struct *idle;
|
|
|
unsigned long timeout;
|
|
|
|
|
|
- /* Cook up an idler for this guy. Note that the address we
|
|
|
- give to kernel_thread is irrelevant -- it's going to start
|
|
|
- where HWRPB.CPU_restart says to start. But this gets all
|
|
|
- the other task-y sort of data structures set up like we
|
|
|
- wish. We can't use kernel_thread since we must avoid
|
|
|
- rescheduling the child. */
|
|
|
- idle = fork_idle(cpuid);
|
|
|
- if (IS_ERR(idle))
|
|
|
- panic("failed fork for CPU %d", cpuid);
|
|
|
-
|
|
|
- DBGS(("smp_boot_one_cpu: CPU %d state 0x%lx flags 0x%lx\n",
|
|
|
- cpuid, idle->state, idle->flags));
|
|
|
-
|
|
|
/* Signal the secondary to wait a moment. */
|
|
|
smp_secondary_alive = -1;
|
|
|
|
|
@@ -489,7 +475,7 @@ smp_prepare_boot_cpu(void)
|
|
|
int __cpuinit
|
|
|
__cpu_up(unsigned int cpu, struct task_struct *tidle)
|
|
|
{
|
|
|
- smp_boot_one_cpu(cpu);
|
|
|
+ smp_boot_one_cpu(cpu, tidle);
|
|
|
|
|
|
return cpu_online(cpu) ? 0 : -ENOSYS;
|
|
|
}
|