| From: Baoquan He <bhe@redhat.com> |
| Subject: s390, crash: wrap crash dumping code into crash related ifdefs |
| Date: Wed, 24 Jan 2024 13:12:49 +0800 |
| |
| Now crash codes under kernel/ folder has been split out from kexec |
| code, crash dumping can be separated from kexec reboot in config |
| items on s390 with some adjustments. |
| |
| Here wrap up crash dumping codes with CONFIG_CRASH_DUMP ifdeffery. |
| |
| Link: https://lkml.kernel.org/r/20240124051254.67105-10-bhe@redhat.com |
| Signed-off-by: Baoquan He <bhe@redhat.com> |
| Cc: Al Viro <viro@zeniv.linux.org.uk> |
| Cc: Eric W. Biederman <ebiederm@xmission.com> |
| Cc: Hari Bathini <hbathini@linux.ibm.com> |
| Cc: Pingfan Liu <piliu@redhat.com> |
| Cc: Klara Modin <klarasmodin@gmail.com> |
| Cc: Michael Kelley <mhklinux@outlook.com> |
| Cc: Nathan Chancellor <nathan@kernel.org> |
| Cc: Stephen Rothwell <sfr@canb.auug.org.au> |
| Cc: Yang Li <yang.lee@linux.alibaba.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| arch/s390/kernel/kexec_elf.c | 2 ++ |
| arch/s390/kernel/kexec_image.c | 2 ++ |
| arch/s390/kernel/machine_kexec_file.c | 10 ++++++++++ |
| 3 files changed, 14 insertions(+) |
| |
| --- a/arch/s390/kernel/kexec_elf.c~s390-crash-wrap-crash-dumping-code-into-crash-related-ifdefs |
| +++ a/arch/s390/kernel/kexec_elf.c |
| @@ -40,8 +40,10 @@ static int kexec_file_add_kernel_elf(str |
| buf.bufsz = phdr->p_filesz; |
| |
| buf.mem = ALIGN(phdr->p_paddr, phdr->p_align); |
| +#ifdef CONFIG_CRASH_DUMP |
| if (image->type == KEXEC_TYPE_CRASH) |
| buf.mem += crashk_res.start; |
| +#endif |
| buf.memsz = phdr->p_memsz; |
| data->memsz = ALIGN(data->memsz, phdr->p_align) + buf.memsz; |
| |
| --- a/arch/s390/kernel/kexec_image.c~s390-crash-wrap-crash-dumping-code-into-crash-related-ifdefs |
| +++ a/arch/s390/kernel/kexec_image.c |
| @@ -24,8 +24,10 @@ static int kexec_file_add_kernel_image(s |
| buf.bufsz = image->kernel_buf_len; |
| |
| buf.mem = 0; |
| +#ifdef CONFIG_CRASH_DUMP |
| if (image->type == KEXEC_TYPE_CRASH) |
| buf.mem += crashk_res.start; |
| +#endif |
| buf.memsz = buf.bufsz; |
| |
| data->kernel_buf = image->kernel_buf; |
| --- a/arch/s390/kernel/machine_kexec_file.c~s390-crash-wrap-crash-dumping-code-into-crash-related-ifdefs |
| +++ a/arch/s390/kernel/machine_kexec_file.c |
| @@ -105,6 +105,7 @@ static int kexec_file_update_purgatory(s |
| if (ret) |
| return ret; |
| |
| +#ifdef CONFIG_CRASH_DUMP |
| if (image->type == KEXEC_TYPE_CRASH) { |
| u64 crash_size; |
| |
| @@ -121,6 +122,7 @@ static int kexec_file_update_purgatory(s |
| sizeof(crash_size), |
| false); |
| } |
| +#endif |
| return ret; |
| } |
| |
| @@ -134,8 +136,10 @@ static int kexec_file_add_purgatory(stru |
| |
| data->memsz = ALIGN(data->memsz, PAGE_SIZE); |
| buf.mem = data->memsz; |
| +#ifdef CONFIG_CRASH_DUMP |
| if (image->type == KEXEC_TYPE_CRASH) |
| buf.mem += crashk_res.start; |
| +#endif |
| |
| ret = kexec_load_purgatory(image, &buf); |
| if (ret) |
| @@ -158,8 +162,10 @@ static int kexec_file_add_initrd(struct |
| |
| data->memsz = ALIGN(data->memsz, PAGE_SIZE); |
| buf.mem = data->memsz; |
| +#ifdef CONFIG_CRASH_DUMP |
| if (image->type == KEXEC_TYPE_CRASH) |
| buf.mem += crashk_res.start; |
| +#endif |
| buf.memsz = buf.bufsz; |
| |
| data->parm->initrd_start = data->memsz; |
| @@ -223,8 +229,10 @@ static int kexec_file_add_ipl_report(str |
| data->kernel_buf + offsetof(struct lowcore, ipl_parmblock_ptr); |
| *lc_ipl_parmblock_ptr = (__u32)buf.mem; |
| |
| +#ifdef CONFIG_CRASH_DUMP |
| if (image->type == KEXEC_TYPE_CRASH) |
| buf.mem += crashk_res.start; |
| +#endif |
| |
| ret = kexec_add_buffer(&buf); |
| out: |
| @@ -268,10 +276,12 @@ void *kexec_file_add_components(struct k |
| memcpy(data.parm->command_line, image->cmdline_buf, |
| image->cmdline_buf_len); |
| |
| +#ifdef CONFIG_CRASH_DUMP |
| if (image->type == KEXEC_TYPE_CRASH) { |
| data.parm->oldmem_base = crashk_res.start; |
| data.parm->oldmem_size = crashk_res.end - crashk_res.start + 1; |
| } |
| +#endif |
| |
| if (image->initrd_buf) { |
| ret = kexec_file_add_initrd(image, &data); |
| _ |