From 40e8e4009d1b946f2fe16b80f01edb01ee69f33a Mon Sep 17 00:00:00 2001 From: WANG Chao Date: Tue, 14 May 2013 18:32:50 +0800 Subject: kexec: check if memory is reserved only when loading kdump kernel. When memory for crashkernel isn't reserved, it's confusing that kexec spits error message for unloading kdump kernel as if we were loading it: # kexec -p -u Memory for crashkernel is not reserved Please reserve memory by passing "crashkernel=X@Y" parameter to the kernel Then try loading kdump kernel # echo $? 1 It's more appropriate to test if memory is reserved only when loading kdump kernel. With this patch: # kexec -p -u # echo $? 0 It's also the same behavior with the case of trying to unload kernel from unloaded state. Signed-off-by: WANG Chao Signed-off-by: Simon Horman --- kexec/kexec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kexec/kexec.c b/kexec/kexec.c index 911c0f68..6a13f791 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c @@ -1175,7 +1175,8 @@ int main(int argc, char *argv[]) } } - if ((kexec_flags & KEXEC_ON_CRASH) && !is_crashkernel_mem_reserved()) { + if (do_load && (kexec_flags & KEXEC_ON_CRASH) && + !is_crashkernel_mem_reserved()) { die("Memory for crashkernel is not reserved\n" "Please reserve memory by passing" "\"crashkernel=X@Y\" parameter to kernel\n" -- cgit 1.2.3-korg