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 <[email protected]>
---
 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 a61f856..22ab098 100644
--- a/kexec/arch/arm64/kexec-arm64.c
+++ b/kexec/arch/arm64/kexec-arm64.c
@@ -590,9 +590,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


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to