Loading arch/mips/kernel/smp.c +9 −21 Original line number Diff line number Diff line Loading @@ -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; /* * Processor goes to start_secondary(), sets online flag * The following code is purely to make sure * Linux can schedule processes on this slave. */ idle = fork_idle(cpu); 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); /* XXXKW timeout */ /* * Trust is futile. We should really have timeouts ... */ while (!cpu_isset(cpu, cpu_callin_map)) udelay(100); Loading @@ -273,23 +278,6 @@ static int __init do_boot_cpu(int cpu) 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 ... */ int setup_profiling_timer(unsigned int multiplier) { Loading Loading
arch/mips/kernel/smp.c +9 −21 Original line number Diff line number Diff line Loading @@ -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; /* * Processor goes to start_secondary(), sets online flag * The following code is purely to make sure * Linux can schedule processes on this slave. */ idle = fork_idle(cpu); 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); /* XXXKW timeout */ /* * Trust is futile. We should really have timeouts ... */ while (!cpu_isset(cpu, cpu_callin_map)) udelay(100); Loading @@ -273,23 +278,6 @@ static int __init do_boot_cpu(int cpu) 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 ... */ int setup_profiling_timer(unsigned int multiplier) { Loading