[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:
do_load=0;
do_unload=1;
Then "-u" do below assignments.
do_load=0;
do_unload=1;
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[])
 		else
 			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,
 						 kexec_file_flags);
-- 
1.8.5.3




More information about the kexec mailing list