int __cpu_up(unsigned int cpu, struct task_struct *tidle) { int ret=0; switch(sparc_cpu_model) { case sun4m: ret = smp4m_boot_one_cpu(cpu, tidle); break; case sun4d: ret = smp4d_boot_one_cpu(cpu, tidle); break; case sparc_leon: ret = leon_boot_one_cpu(cpu, tidle); break; case sun4e: printk("SUN4E\n"); BUG(); break; case sun4u: printk("SUN4U\n"); BUG(); break; default: printk("UNKNOWN!\n"); BUG(); break; } if (!ret) { cpumask_set_cpu(cpu, &smp_commenced_mask); while (!cpu_online(cpu)) mb(); } return ret; }
int __cpuinit __cpu_up(unsigned int cpu) { extern int __cpuinit smp4m_boot_one_cpu(int); extern int __cpuinit smp4d_boot_one_cpu(int); int ret=0; switch(sparc_cpu_model) { case sun4: printk("SUN4\n"); BUG(); break; case sun4c: printk("SUN4C\n"); BUG(); break; case sun4m: ret = smp4m_boot_one_cpu(cpu); break; case sun4d: ret = smp4d_boot_one_cpu(cpu); break; case sparc_leon: ret = leon_boot_one_cpu(cpu); break; case sun4e: printk("SUN4E\n"); BUG(); break; case sun4u: printk("SUN4U\n"); BUG(); break; default: printk("UNKNOWN!\n"); BUG(); break; } if (!ret) { cpumask_set_cpu(cpu, &smp_commenced_mask); while (!cpu_online(cpu)) mb(); } return ret; }