summaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/kexec_image.c
diff options
context:
space:
mode:
authorPhilipp Rudo2019-03-07 15:56:34 +0100
committerMartin Schwidefsky2019-04-29 10:44:00 +0200
commit653beba24d4cd281b078eab48c9bce956939061c (patch)
tree666e391e3156330ba0f82d216408aae68bd9e2e6 /arch/s390/kernel/kexec_image.c
parents390/kexec_file: Unify loader code (diff)
downloadkernel-qcow2-linux-653beba24d4cd281b078eab48c9bce956939061c.tar.gz
kernel-qcow2-linux-653beba24d4cd281b078eab48c9bce956939061c.tar.xz
kernel-qcow2-linux-653beba24d4cd281b078eab48c9bce956939061c.zip
s390/kexec_file: Load new kernel to absolute 0
The leading 64 kB of a kernel image doesn't contain any data needed to boot the new kernel when it was loaded via kexec_file. Thus kexec_file currently strips them off before loading the image. Keep the leading 64 kB in order to be able to pass a ipl_report to the next kernel. Signed-off-by: Philipp Rudo <prudo@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/kexec_image.c')
-rw-r--r--arch/s390/kernel/kexec_image.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/s390/kernel/kexec_image.c b/arch/s390/kernel/kexec_image.c
index d7e65eeae22f..7281540605b7 100644
--- a/arch/s390/kernel/kexec_image.c
+++ b/arch/s390/kernel/kexec_image.c
@@ -19,17 +19,18 @@ static int kexec_file_add_kernel_image(struct kimage *image,
buf.image = image;
- buf.buffer = image->kernel_buf + STARTUP_NORMAL_OFFSET;
- buf.bufsz = image->kernel_buf_len - STARTUP_NORMAL_OFFSET;
+ buf.buffer = image->kernel_buf;
+ buf.bufsz = image->kernel_buf_len;
- buf.mem = STARTUP_NORMAL_OFFSET;
+ buf.mem = 0;
if (image->type == KEXEC_TYPE_CRASH)
buf.mem += crashk_res.start;
buf.memsz = buf.bufsz;
data->kernel_buf = image->kernel_buf;
+ data->kernel_mem = buf.mem;
data->parm = image->kernel_buf + PARMAREA;
- data->memsz += buf.memsz + STARTUP_NORMAL_OFFSET;
+ data->memsz += buf.memsz;
return kexec_add_buffer(&buf);
}