Commit 865e2acd authored by Baoquan He's avatar Baoquan He Committed by Andrew Morton
Browse files

s390, crash: wrap crash dumping code into crash related ifdefs

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: default avatarBaoquan 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: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 086d67ef
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -40,8 +40,10 @@ static int kexec_file_add_kernel_elf(struct kimage *image,
		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;

+2 −0
Original line number Diff line number Diff line
@@ -24,8 +24,10 @@ static int kexec_file_add_kernel_image(struct kimage *image,
	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;
+10 −0
Original line number Diff line number Diff line
@@ -105,6 +105,7 @@ static int kexec_file_update_purgatory(struct kimage *image,
	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(struct kimage *image,
						     sizeof(crash_size),
						     false);
	}
#endif
	return ret;
}

@@ -134,8 +136,10 @@ static int kexec_file_add_purgatory(struct kimage *image,

	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 kimage *image,

	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(struct kimage *image,
		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 kimage *image,
	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);