summaryrefslogtreecommitdiff
path: root/kexec/arch/s390/crashdump-s390.c
diff options
context:
space:
mode:
authorSven Schnelle <svens@linux.ibm.com>2021-12-16 12:43:52 +0100
committerSimon Horman <horms@verge.net.au>2022-01-14 15:58:06 +0100
commitdefb80a20bf1e4d778596ce2447e19d44f31ae5a (patch)
treedb2e94f805fc02f89cb874fb02eb457af4cb4b26 /kexec/arch/s390/crashdump-s390.c
parentb5a34a20984c4ad27cc5054d9957af8130b42a50 (diff)
s390: add variable command line size
Newer s390 kernels support a command line size longer than 896 bytes. Such kernels contain a new member in the parameter area, which might be utilized by tools like kexec. Older kernels have the location initialized to zero, so we check whether there's a non-zero number present and use that. If there isn't, we fallback to the legacy command line size of 896 bytes. Signed-off-by: Sven Schnelle <svens@linux.ibm.com> Reviewed-by: Alexander Egorenkov <egorenar@linux.ibm.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/arch/s390/crashdump-s390.c')
-rw-r--r--kexec/arch/s390/crashdump-s390.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kexec/arch/s390/crashdump-s390.c b/kexec/arch/s390/crashdump-s390.c
index 10f4d60..3bd9efe 100644
--- a/kexec/arch/s390/crashdump-s390.c
+++ b/kexec/arch/s390/crashdump-s390.c
@@ -52,7 +52,8 @@ static int create_elf_header(struct kexec_info *info, unsigned long crash_base,
elfcorehdr_size = bufsz;
snprintf(str, sizeof(str), " elfcorehdr=%ld@%ldK\n",
elfcorehdr_size, elfcorehdr / 1024);
- command_line_add(str);
+ if (command_line_add(info, str))
+ return -1;
#endif
return 0;
}