From: Raphael Ning <raphning@xxxxxxxxxx> According to kexec(8) manpage, --status (-S) works with both normal kexec (loaded by -l) and crash kernel (loaded by -p) image types, and defaults to the latter. However, the implementation does not match the description: `kexec -l -S` queries the -p image type as if -l were not specified. This is because there is no internal flag defined for the normal kexec type, and -S treats the zero flag as the trigger for the default behaviour (-p). Fix that by making sure the default behaviour for -S is not applied when the -l option is present. Signed-off-by: Raphael Ning <raphning@xxxxxxxxxx> --- kexec/kexec.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kexec/kexec.c b/kexec/kexec.c index ffc689ac3d7f..0c4b9619bfd7 100644 --- a/kexec/kexec.c +++ b/kexec/kexec.c @@ -1336,6 +1336,7 @@ static void print_crashkernel_region_size(void) int main(int argc, char *argv[]) { + int has_opt_load = 0; int do_load = 1; int do_exec = 0; int do_load_jump_back_helper = 0; @@ -1393,6 +1394,7 @@ int main(int argc, char *argv[]) do_exec = 1; break; case OPT_LOAD: + has_opt_load = 1; do_load = 1; do_exec = 0; do_shutdown = 0; @@ -1512,7 +1514,7 @@ int main(int argc, char *argv[]) do_sync = 0; if (do_status) { - if (kexec_flags == 0) + if (kexec_flags == 0 && !has_opt_load) kexec_flags = KEXEC_ON_CRASH; do_load = 0; do_reuse_initrd = 0; -- 2.23.3 _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec