diff options
Diffstat (limited to 'arch/sparc/kernel/smp_64.c')
-rw-r--r-- | arch/sparc/kernel/smp_64.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c index 2f9948c4107c..f591598d92f6 100644 --- a/arch/sparc/kernel/smp_64.c +++ b/arch/sparc/kernel/smp_64.c | |||
@@ -343,21 +343,17 @@ extern unsigned long sparc64_cpu_startup; | |||
343 | */ | 343 | */ |
344 | static struct thread_info *cpu_new_thread = NULL; | 344 | static struct thread_info *cpu_new_thread = NULL; |
345 | 345 | ||
346 | static int __cpuinit smp_boot_one_cpu(unsigned int cpu) | 346 | static int __cpuinit smp_boot_one_cpu(unsigned int cpu, struct task_struct *idle) |
347 | { | 347 | { |
348 | unsigned long entry = | 348 | unsigned long entry = |
349 | (unsigned long)(&sparc64_cpu_startup); | 349 | (unsigned long)(&sparc64_cpu_startup); |
350 | unsigned long cookie = | 350 | unsigned long cookie = |
351 | (unsigned long)(&cpu_new_thread); | 351 | (unsigned long)(&cpu_new_thread); |
352 | struct task_struct *p; | ||
353 | void *descr = NULL; | 352 | void *descr = NULL; |
354 | int timeout, ret; | 353 | int timeout, ret; |
355 | 354 | ||
356 | p = fork_idle(cpu); | ||
357 | if (IS_ERR(p)) | ||
358 | return PTR_ERR(p); | ||
359 | callin_flag = 0; | 355 | callin_flag = 0; |
360 | cpu_new_thread = task_thread_info(p); | 356 | cpu_new_thread = task_thread_info(idle); |
361 | 357 | ||
362 | if (tlb_type == hypervisor) { | 358 | if (tlb_type == hypervisor) { |
363 | #if defined(CONFIG_SUN_LDOMS) && defined(CONFIG_HOTPLUG_CPU) | 359 | #if defined(CONFIG_SUN_LDOMS) && defined(CONFIG_HOTPLUG_CPU) |
@@ -1229,7 +1225,7 @@ void __devinit smp_fill_in_sib_core_maps(void) | |||
1229 | 1225 | ||
1230 | int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle) | 1226 | int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle) |
1231 | { | 1227 | { |
1232 | int ret = smp_boot_one_cpu(cpu); | 1228 | int ret = smp_boot_one_cpu(cpu, tidle); |
1233 | 1229 | ||
1234 | if (!ret) { | 1230 | if (!ret) { |
1235 | cpumask_set_cpu(cpu, &smp_commenced_mask); | 1231 | cpumask_set_cpu(cpu, &smp_commenced_mask); |