Since we've changed the SMP boot mechanism (by having the new kernel handle all CPUs), now remove (relocated_)kexec_smp_wait. Signed-off-by: Dengcheng Zhu <dzhu@xxxxxxxxxxxx> --- arch/mips/include/asm/kexec.h | 2 -- arch/mips/kernel/machine_kexec.c | 5 ----- arch/mips/kernel/relocate_kernel.S | 39 -------------------------------------- 3 files changed, 46 deletions(-) diff --git a/arch/mips/include/asm/kexec.h b/arch/mips/include/asm/kexec.h index 8f1d0ef..9618e2e 100644 --- a/arch/mips/include/asm/kexec.h +++ b/arch/mips/include/asm/kexec.h @@ -41,9 +41,7 @@ extern void (*_machine_kexec_shutdown)(void); extern void (*_machine_crash_shutdown)(struct pt_regs *regs); extern void default_machine_crash_shutdown(struct pt_regs *regs); #ifdef CONFIG_SMP -extern const unsigned char kexec_smp_wait[]; extern unsigned long secondary_kexec_args[4]; -extern void (*relocated_kexec_smp_wait) (void *); extern atomic_t kexec_ready_to_reboot; extern void kexec_smp_reboot(void); extern void (*_crash_smp_send_stop)(void); diff --git a/arch/mips/kernel/machine_kexec.c b/arch/mips/kernel/machine_kexec.c index 02146ad..48c06c2 100644 --- a/arch/mips/kernel/machine_kexec.c +++ b/arch/mips/kernel/machine_kexec.c @@ -28,7 +28,6 @@ int (*_machine_kexec_prepare)(struct kimage *) = NULL; void (*_machine_kexec_shutdown)(void) = NULL; void (*_machine_crash_shutdown)(struct pt_regs *regs) = NULL; #ifdef CONFIG_SMP -void (*relocated_kexec_smp_wait) (void *); atomic_t kexec_ready_to_reboot = ATOMIC_INIT(0); void (*_crash_smp_send_stop)(void) = NULL; @@ -142,10 +141,6 @@ machine_kexec(struct kimage *image) printk("Bye ...\n"); __flush_cache_all(); #ifdef CONFIG_SMP - /* All secondary cpus now may jump to kexec_wait cycle */ - relocated_kexec_smp_wait = reboot_code_buffer + - (void *)(kexec_smp_wait - relocate_new_kernel); - smp_wmb(); atomic_set(&kexec_ready_to_reboot, 1); kexec_smp_reboot(); diff --git a/arch/mips/kernel/relocate_kernel.S b/arch/mips/kernel/relocate_kernel.S index c6bbf21..14e0eaf 100644 --- a/arch/mips/kernel/relocate_kernel.S +++ b/arch/mips/kernel/relocate_kernel.S @@ -100,45 +100,6 @@ done: j s1 END(relocate_new_kernel) -#ifdef CONFIG_SMP -/* - * Other CPUs should wait until code is relocated and - * then start at entry (?) point. - */ -LEAF(kexec_smp_wait) - PTR_L a0, s_arg0 - PTR_L a1, s_arg1 - PTR_L a2, s_arg2 - PTR_L a3, s_arg3 - PTR_L s1, kexec_start_address - - /* Non-relocated address works for args and kexec_start_address ( old - * kernel is not overwritten). But we need relocated address of - * kexec_flag. - */ - - bal 1f -1: move t1,ra; - PTR_LA t2,1b - PTR_LA t0,kexec_flag - PTR_SUB t0,t0,t2; - PTR_ADD t0,t1,t0; - -1: LONG_L s0, (t0) - bne s0, zero,1b - -#ifdef CONFIG_CPU_CAVIUM_OCTEON - .set push - .set noreorder - synci 0($0) - .set pop -#else - sync -#endif - j s1 - END(kexec_smp_wait) -#endif - #ifdef __mips64 /* all PTR's must be aligned to 8 byte in 64-bit mode */ .align 3 -- 2.7.4