Hi Paul, This is a rewrite of the series. Basically patches 1~3 address what we dissussed so far. Now it allows both methods - shutting off the nonboot CPUs and jumping to relocated_kexec_smp_wait on nonboot CPUs. Caches are flushed before signaling reboot. CPUs are marked offline to prevent getting IPIs. Note that this is done prior to disabling local IRQ. Patch #4 is unchnaged. Patch #5 is the previous #6 -- I'm still putting it in here with reasons mentioned in our discussion and in the patch description. Thanks, Dengcheng Zhu (5): MIPS: kexec: Mark CPU offline before disabling local IRQ MIPS: kexec: Make a framework for both jumping and halting on nonboot CPUs MIPS: kexec: CPS systems to halt nonboot CPUs MIPS: kexec: Relax memory restriction MIPS: kexec: Use prepare method from Generic for UHI platforms arch/mips/Kconfig | 4 + arch/mips/cavium-octeon/smp.c | 7 ++ arch/mips/generic/Makefile | 1 - arch/mips/generic/kexec.c | 44 --------- arch/mips/include/asm/kexec.h | 11 ++- arch/mips/include/asm/smp-ops.h | 3 + arch/mips/include/asm/smp.h | 16 ++++ arch/mips/kernel/crash.c | 7 +- arch/mips/kernel/machine_kexec.c | 131 ++++++++++++++++++++++++-- arch/mips/kernel/smp-bmips.c | 7 ++ arch/mips/kernel/smp-cps.c | 80 +++++++++++----- arch/mips/loongson64/loongson-3/smp.c | 4 + 12 files changed, 232 insertions(+), 83 deletions(-) delete mode 100644 arch/mips/generic/kexec.c -- 2.17.1