In case we do not implement a _machine_kexec_shutdown callback to do platform specific kexec shutdown operations, the most sensible thing to do is to provide the kexec'd kernel with the same arguments we initially booted with. Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx> --- arch/mips/kernel/machine_kexec.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/mips/kernel/machine_kexec.c b/arch/mips/kernel/machine_kexec.c index 8b574bcd39ba..8c5bbf302ab1 100644 --- a/arch/mips/kernel/machine_kexec.c +++ b/arch/mips/kernel/machine_kexec.c @@ -11,6 +11,7 @@ #include <linux/delay.h> #include <asm/cacheflush.h> +#include <asm/bootinfo.h> #include <asm/page.h> extern const unsigned char relocate_new_kernel[]; @@ -66,8 +67,14 @@ machine_kexec_cleanup(struct kimage *kimage) void machine_shutdown(void) { - if (_machine_kexec_shutdown) + if (_machine_kexec_shutdown) { _machine_kexec_shutdown(); + } else { + kexec_args[0] = fw_arg0; + kexec_args[1] = fw_arg1; + kexec_args[2] = fw_arg2; + kexec_args[3] = fw_arg3; + } } void -- 2.9.3