[PATCH v2 4/7] arm64: kdump: set up other segments

AKASHI Takahiro takahiro.akashi at linaro.org
Mon Aug 8 19:00:29 PDT 2016


We make sure that all the other segments, initrd and device-tree blob,
also be loaded into the reserved memory of crash dump kernel.

Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
---
 kexec/arch/arm64/kexec-arm64.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c
index 940cddb..b9da85d 100644
--- a/kexec/arch/arm64/kexec-arm64.c
+++ b/kexec/arch/arm64/kexec-arm64.c
@@ -342,9 +342,15 @@ int arm64_load_other_segments(struct kexec_info *info,
 
 	/* Put the other segments after the image. */
 
-	image_base = arm64_mem.phys_offset + arm64_mem.text_offset;
-	hole_min = image_base + arm64_mem.image_size;
-	hole_max = ULONG_MAX;
+	if (info->kexec_flags & KEXEC_ON_CRASH) {
+		image_base = crash_reserved_mem.start + arm64_mem.text_offset;
+		hole_min = image_base + arm64_mem.image_size;
+		hole_max = crash_reserved_mem.end;
+	} else {
+		image_base = arm64_mem.phys_offset + arm64_mem.text_offset;
+		hole_min = image_base + arm64_mem.image_size;
+		hole_max = ULONG_MAX;
+	}
 
 	if (arm64_opts.initrd) {
 		initrd_buf = slurp_file(arm64_opts.initrd, &initrd_size);
-- 
2.9.0




More information about the kexec mailing list