[PATCH] kexec: usage printing when specify "-u -p"

Baoquan He bhe at redhat.com
Tue Aug 19 01:45:26 PDT 2014

Currently, unload work will be done successfully when specify "kexec -p -u".
However, when exchange the sequence like "kexec -u -p" unload work can be
done too, but with a usage printing.

This is because in the former sequence, "-p" will do below assignments:
Then "-u" do below assignments.
Nothing wrong happened in this situation. Since the result woule be:
"do_load==0" and do_unload==1.

In the latter sequence, the final result will be "do_load==1" and
"do_unload==1". Then after unload operation, it will go into loading
code flow. Thsi cause the usage() calling and printing.

So in this patch add a check when enter into the loading code flow.

Signed-off-by: Baoquan He <bhe at redhat.com>
 kexec/kexec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kexec/kexec.c b/kexec/kexec.c
index 7e7b604..87ec26a 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
@@ -1361,7 +1361,7 @@ int main(int argc, char *argv[])
 			result = k_unload(kexec_flags);
-	if (do_load && (result == 0)) {
+	if (do_load && !do_unload (result == 0)) {
 		if (do_kexec_file_syscall)
 			result = do_kexec_file_load(fileind, argc, argv,

More information about the kexec mailing list