--reuse-cmdline reads the command line of the currently
running kernel from /proc/cmdline and uses that for the
kernel that should be kexec'd.

Signed-off-by: Sven Schnelle <[email protected]>
Reviewed-by: Alexander Egorenkov <[email protected]>
---
 kexec/arch/s390/include/arch/options.h | 10 ++++++----
 kexec/arch/s390/kexec-image.c          |  9 +++++++++
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/kexec/arch/s390/include/arch/options.h 
b/kexec/arch/s390/include/arch/options.h
index 76044a301ceb..b030b61d61be 100644
--- a/kexec/arch/s390/include/arch/options.h
+++ b/kexec/arch/s390/include/arch/options.h
@@ -1,9 +1,10 @@
 #ifndef KEXEC_ARCH_S390_OPTIONS_H
 #define KEXEC_ARCH_S390_OPTIONS_H
 
-#define OPT_ARCH_MAX   (OPT_MAX+0)
-#define OPT_APPEND     OPT_MAX+0
-#define OPT_RAMDISK    OPT_MAX+1
+#define OPT_ARCH_MAX           (OPT_MAX+0)
+#define OPT_APPEND             (OPT_MAX+0)
+#define OPT_RAMDISK            (OPT_MAX+1)
+#define OPT_REUSE_CMDLINE      (OPT_MAX+2)
 
 /* Options relevant to the architecture (excluding loader-specific ones),
  * in this case none:
@@ -31,7 +32,8 @@
        KEXEC_ARCH_OPTIONS                              \
        {"command-line",     1, 0, OPT_APPEND},         \
        {"append",           1, 0, OPT_APPEND},         \
-       {"initrd",           1, 0, OPT_RAMDISK},
+       {"initrd",           1, 0, OPT_RAMDISK},        \
+       {"reuse-cmdline",    0, 0, OPT_REUSE_CMDLINE },
 
 #define KEXEC_ALL_OPT_STR KEXEC_ARCH_OPT_STR
 
diff --git a/kexec/arch/s390/kexec-image.c b/kexec/arch/s390/kexec-image.c
index dbeb689b830a..310d967ea331 100644
--- a/kexec/arch/s390/kexec-image.c
+++ b/kexec/arch/s390/kexec-image.c
@@ -72,6 +72,10 @@ int image_s390_load_file(int argc, char **argv, struct 
kexec_info *info)
                case OPT_RAMDISK:
                        ramdisk = optarg;
                        break;
+               case OPT_REUSE_CMDLINE:
+                       free(command_line);
+                       command_line = get_command_line();
+                       break;
                }
        }
 
@@ -123,6 +127,10 @@ image_s390_load(int argc, char **argv, const char 
*kernel_buf,
                        if (command_line_add(optarg))
                                return -1;
                        break;
+               case OPT_REUSE_CMDLINE:
+                       free(command_line);
+                       command_line = get_command_line();
+                       break;
                case OPT_RAMDISK:
                        ramdisk = optarg;
                        break;
@@ -223,5 +231,6 @@ image_s390_usage(void)
        printf("--command-line=STRING Set the kernel command line to STRING.\n"
               "--append=STRING       Set the kernel command line to STRING.\n"
               "--initrd=FILENAME     Use the file FILENAME as a ramdisk.\n"
+              "--reuse-cmdline       Use kernel command line from running 
system.\n"
                );
 }
-- 
2.25.1


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to