Convert s390 to use the generic framework to boot secondary CPUs.
Cc: Martin Schwidefsky <redacted>
Cc: Heiko Carstens <redacted>
Cc: <redacted> (supporter:S390)
Cc: Michael Holzheu <redacted>
Cc: Thomas Gleixner <redacted>
Cc: Jan Glauber <redacted>
Cc: <redacted>
Signed-off-by: Srivatsa S. Bhat <redacted>
---
arch/s390/kernel/smp.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 14c8a08..3eb12e6 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -29,6 +29,7 @@
#include <linux/interrupt.h>
#include <linux/irqflags.h>
#include <linux/cpu.h>
+#include <linux/smpboot.h>
#include <linux/slab.h>
#include <linux/crash_dump.h>
#include <asm/asm-offsets.h>
@@ -702,6 +703,11 @@ static void __init smp_detect_cpus(void)
*/
static void __cpuinit smp_start_secondary(void *cpuvoid)
{
+ smpboot_start_secondary(cpuvoid);
+}
+
+void __cpuinit __cpu_pre_starting(void *unused)
+{
S390_lowcore.last_update_clock = get_clock();
S390_lowcore.restart_stack = (unsigned long) restart_stack;
S390_lowcore.restart_fn = (unsigned long) do_restart;@@ -711,15 +717,9 @@ static void __cpuinit smp_start_secondary(void *cpuvoid)
__ctl_load(S390_lowcore.cregs_save_area, 0, 15);
__load_psw_mask(psw_kernel_bits | PSW_MASK_DAT);
cpu_init();
- preempt_disable();
init_cpu_timer();
init_cpu_vtimer();
pfault_init();
- notify_cpu_starting(smp_processor_id());
- set_cpu_online(smp_processor_id(), true);
- local_irq_enable();
- /* cpu_idle will call schedule for us */
- cpu_idle();
}
/* Upping and downing of CPUs */