diff options
author | Taras Kondratiuk <taras.kondratiuk@linaro.org> | 2014-01-13 12:47:25 +0200 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2014-01-14 09:25:34 +0900 |
commit | 69336eb69fc021d00da9fbf2c6b25a4882f2c6b4 (patch) | |
tree | 6e063184940499ba4763f024633cb33821f8f668 /kexec/arch/arm/crashdump-arm.c | |
parent | 158d7638f1669a8d34def55ab81f10993e68e76a (diff) |
kexec: arm: Fix endianness in crashdump header
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@linaro.org>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/arch/arm/crashdump-arm.c')
-rw-r--r-- | kexec/arch/arm/crashdump-arm.c | 9 |
1 files changed, 8 insertions, 1 deletions
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, }; |