From: Stephen Warren <swarren@xxxxxxxxxx> Prior to commit 3ab8352 "kexec jump", if machine_kexec() returned, sys_reboot() would return -EINVAL. This patch restores this behaviour for the non-KEXEC_JUMP case, where machine_kexec() is not expected to return. This situation can occur on ARM, where kexec requires disabling all but one CPU using CPU hotplug. However, if hotplug isn't supported by the particular HW the kernel is running on, then kexec cannot succeed. Signed-off-by: Stephen Warren <swarren at nvidia.com> Acked-by: Will Deacon <will.deacon at arm.com> Acked-by: Zhang Yanfei <zhangyanfei at cn.fujitsu.com> Acked-by: Simon Horman <horms at verge.net.au> --- kernel/kexec.c | 2 ++ 1 file changed, 2 insertions(+) Andrew, could you consider picking up this patch? diff --git a/kernel/kexec.c b/kernel/kexec.c index 59f7b55..bde1190 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -1702,6 +1702,8 @@ int kernel_kexec(void) pm_restore_console(); unlock_system_sleep(); } +#else + error = -EINVAL; #endif Unlock: -- 1.8.2.1