|
|
23ef29 |
From ba77ebdac0d49ac128f4d31a5fd86e8165ce916a Mon Sep 17 00:00:00 2001
|
|
|
23ef29 |
Message-Id: <ba77ebdac0d49ac128f4d31a5fd86e8165ce916a.1489676829.git.panand@redhat.com>
|
|
|
23ef29 |
In-Reply-To: <f85183096d31d865c97565614535d84943b12908.1489676829.git.panand@redhat.com>
|
|
|
23ef29 |
References: <f85183096d31d865c97565614535d84943b12908.1489676829.git.panand@redhat.com>
|
|
|
23ef29 |
From: Pratyush Anand <panand@redhat.com>
|
|
|
23ef29 |
Date: Wed, 15 Mar 2017 18:38:24 +0900
|
|
|
23ef29 |
Subject: [PATCH 10/10] arm64: kdump: Add support for binary image files
|
|
|
23ef29 |
|
|
|
23ef29 |
This patch adds support to use binary image ie arch/arm64/boot/Image with
|
|
|
23ef29 |
kdump.
|
|
|
23ef29 |
|
|
|
23ef29 |
Signed-off-by: Pratyush Anand <panand@redhat.com>
|
|
|
23ef29 |
[takahiro.akashi@linaro.org: a bit reworked]
|
|
|
23ef29 |
Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
|
|
|
23ef29 |
---
|
|
|
23ef29 |
kexec/arch/arm64/kexec-image-arm64.c | 12 ++++++++++++
|
|
|
23ef29 |
1 file changed, 12 insertions(+)
|
|
|
23ef29 |
|
|
|
23ef29 |
diff --git a/kexec/arch/arm64/kexec-image-arm64.c b/kexec/arch/arm64/kexec-image-arm64.c
|
|
|
23ef29 |
index 960ed9667a4d..982e431e6d22 100644
|
|
|
23ef29 |
--- a/kexec/arch/arm64/kexec-image-arm64.c
|
|
|
23ef29 |
+++ b/kexec/arch/arm64/kexec-image-arm64.c
|
|
|
23ef29 |
@@ -4,7 +4,9 @@
|
|
|
23ef29 |
|
|
|
23ef29 |
#define _GNU_SOURCE
|
|
|
23ef29 |
|
|
|
23ef29 |
+#include "crashdump-arm64.h"
|
|
|
23ef29 |
#include "kexec-arm64.h"
|
|
|
23ef29 |
+#include "kexec-syscall.h"
|
|
|
23ef29 |
#include <limits.h>
|
|
|
23ef29 |
|
|
|
23ef29 |
int image_arm64_probe(const char *kernel_buf, off_t kernel_size)
|
|
|
23ef29 |
@@ -58,6 +60,16 @@ int image_arm64_load(int argc, char **argv, const char *kernel_buf,
|
|
|
23ef29 |
dbgprintf("%s: PE format: %s\n", __func__,
|
|
|
23ef29 |
(arm64_header_check_pe_sig(header) ? "yes" : "no"));
|
|
|
23ef29 |
|
|
|
23ef29 |
+ if (info->kexec_flags & KEXEC_ON_CRASH) {
|
|
|
23ef29 |
+ /* create and initialize elf core header segment */
|
|
|
23ef29 |
+ result = load_crashdump_segments(info);
|
|
|
23ef29 |
+ if (result) {
|
|
|
23ef29 |
+ dbgprintf("%s: Creating eflcorehdr failed.\n",
|
|
|
23ef29 |
+ __func__);
|
|
|
23ef29 |
+ goto exit;
|
|
|
23ef29 |
+ }
|
|
|
23ef29 |
+ }
|
|
|
23ef29 |
+
|
|
|
23ef29 |
/* load the kernel */
|
|
|
23ef29 |
add_segment_phys_virt(info, kernel_buf, kernel_size,
|
|
|
23ef29 |
kernel_segment + arm64_mem.text_offset,
|
|
|
23ef29 |
--
|
|
|
23ef29 |
2.9.3
|
|
|
23ef29 |
|