Skip to content

Commit

Permalink
kexec: ppc64: print help to stdout instead of stderr
Browse files Browse the repository at this point in the history
Currently 'kexec --help' on powerpc64 prints the generic help/usage to
stdout, and the powerpc64 specific options to stderr

That is, if the stdout of 'kexec --help' is redirected to some file,
some of the help options will not be redirected, and instead printed on
the terminal/stderr:

    [root@machine kexec-tools]# kexec --help > /tmp/out
         --command-line=<Command line> command line to append.
         --append=<Command line> same as --command-line.
         --ramdisk=<filename> Initial RAM disk.
         --initrd=<filename> same as --ramdisk.
         --devicetreeblob=<filename> Specify device tree blob file.
                                     Not applicable while using
    --kexec-file-syscall.
         --dtb=<filename> same as --devicetreeblob.
    elf support is still broken
         --elf64-core-headers Prepare core headers in ELF64 format
         --dt-no-old-root Do not reuse old kernel root= param.
                          while creating flatten device tree.

Fix this inconsistency by writing powerpc64 specific options to stdout,
similar to the generic 'kexec --help'

With the proposed changes, it is like this (nothing printed to stderr):

    [root@machine kexec-tools]# ./build/sbin/kexec --help > /tmp/out

Reported-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
Signed-off-by: Simon Horman <horms@kernel.org>
  • Loading branch information
adi-g15-ibm authored and horms committed Nov 16, 2023
1 parent 74d66d4 commit 44e7b73
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 15 deletions.
22 changes: 11 additions & 11 deletions kexec/arch/ppc64/kexec-elf-ppc64.c
Original file line number Diff line number Diff line change
Expand Up @@ -482,15 +482,15 @@ int elf_ppc64_load(int argc, char **argv, const char *buf, off_t len,

void elf_ppc64_usage(void)
{
fprintf(stderr, " --command-line=<Command line> command line to append.\n");
fprintf(stderr, " --append=<Command line> same as --command-line.\n");
fprintf(stderr, " --ramdisk=<filename> Initial RAM disk.\n");
fprintf(stderr, " --initrd=<filename> same as --ramdisk.\n");
fprintf(stderr, " --devicetreeblob=<filename> Specify device tree blob file.\n");
fprintf(stderr, " ");
fprintf(stderr, "Not applicable while using --kexec-file-syscall.\n");
fprintf(stderr, " --reuse-cmdline Use kernel command line from running system.\n");
fprintf(stderr, " --dtb=<filename> same as --devicetreeblob.\n");

fprintf(stderr, "elf support is still broken\n");
printf(" --command-line=<Command line> command line to append.\n");
printf(" --append=<Command line> same as --command-line.\n");
printf(" --ramdisk=<filename> Initial RAM disk.\n");
printf(" --initrd=<filename> same as --ramdisk.\n");
printf(" --devicetreeblob=<filename> Specify device tree blob file.\n");
printf(" ");
printf("Not applicable while using --kexec-file-syscall.\n");
printf(" --reuse-cmdline Use kernel command line from running system.\n");
printf(" --dtb=<filename> same as --devicetreeblob.\n");

printf("elf support is still broken\n");
}
6 changes: 3 additions & 3 deletions kexec/arch/ppc64/kexec-ppc64.c
Original file line number Diff line number Diff line change
Expand Up @@ -910,9 +910,9 @@ int file_types = sizeof(file_type) / sizeof(file_type[0]);

void arch_usage(void)
{
fprintf(stderr, " --elf64-core-headers Prepare core headers in ELF64 format\n");
fprintf(stderr, " --dt-no-old-root Do not reuse old kernel root= param.\n" \
" while creating flatten device tree.\n");
printf(" --elf64-core-headers Prepare core headers in ELF64 format\n");
printf(" --dt-no-old-root Do not reuse old kernel root= param.\n"
" while creating flatten device tree.\n");
}

struct arch_options_t arch_options = {
Expand Down
2 changes: 1 addition & 1 deletion kexec/arch/ppc64/kexec-zImage-ppc64.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,5 +180,5 @@ int zImage_ppc64_load(FILE *file, int UNUSED(argc), char **UNUSED(argv),

void zImage_ppc64_usage(void)
{
fprintf(stderr, "zImage support is still broken\n");
printf("zImage support is still broken\n");
}

0 comments on commit 44e7b73

Please sign in to comment.