[PATCH] kexec: arm: Fix endianness in crashdump header
Taras Kondratiuk
taras.kondratiuk at linaro.org
Fri Oct 4 09:17:07 EDT 2013
Currently little-endian ELFDATA is hard-coded in crashdump header.
This lead to a wrong header format if crashdump is generated on BE system.
Set native endianness into ELFDATA field.
Signed-off-by: Taras Kondratiuk <taras.kondratiuk at linaro.org>
---
kexec/arch/arm/crashdump-arm.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c
index 01973b1..0cd6935 100644
--- a/kexec/arch/arm/crashdump-arm.c
+++ b/kexec/arch/arm/crashdump-arm.c
@@ -31,6 +31,13 @@
#include "../../crashdump.h"
#include "crashdump-arm.h"
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define ELFDATANATIVE ELFDATA2LSB
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define ELFDATANATIVE ELFDATA2MSB
+#else
+#error "Unknown machine endian"
+#endif
/*
* Used to save various memory ranges/regions needed for the captured
@@ -47,7 +54,7 @@ static struct memory_range crash_reserved_mem;
static struct crash_elf_info elf_info = {
.class = ELFCLASS32,
- .data = ELFDATA2LSB,
+ .data = ELFDATANATIVE,
.machine = EM_ARM,
.page_offset = PAGE_OFFSET,
};
--
1.7.9.5
More information about the kexec
mailing list