diff options
Diffstat (limited to 'kexec/arch/arm64/kexec-elf-arm64.c')
-rw-r--r-- | kexec/arch/arm64/kexec-elf-arm64.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kexec/arch/arm64/kexec-elf-arm64.c b/kexec/arch/arm64/kexec-elf-arm64.c index 2b6c127..900c693 100644 --- a/kexec/arch/arm64/kexec-elf-arm64.c +++ b/kexec/arch/arm64/kexec-elf-arm64.c @@ -119,6 +119,16 @@ int elf_arm64_load(int argc, char **argv, const char *kernel_buf, dbgprintf("%s: PE format: %s\n", __func__, (arm64_header_check_pe_sig(header) ? "yes" : "no")); + /* create and initialize elf core header segment */ + if (info->kexec_flags & KEXEC_ON_CRASH) { + result = load_crashdump_segments(info); + if (result) { + dbgprintf("%s: Creating eflcorehdr failed.\n", + __func__); + goto exit; + } + } + /* load the kernel */ result = elf_exec_load(&ehdr, info); @@ -127,6 +137,7 @@ int elf_arm64_load(int argc, char **argv, const char *kernel_buf, goto exit; } + /* load additional data */ result = arm64_load_other_segments(info, kernel_segment + arm64_mem.text_offset); |