summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Nowakowski <marcin.nowakowski@imgtec.com>2016-12-02 10:49:09 +0100
committerSimon Horman <horms@verge.net.au>2016-12-09 08:56:21 +0100
commit18bf48b15c289e88cb65cdc758749e2735eac291 (patch)
tree101bf2c6e9e2d2b7e052bf5ff5ae871a9b90d8a7
parentfecd481fbe6102dac2beb467a616401a0cb8ab2e (diff)
mips: crashdump: add little-endian support
Elf header for crashdump has until now been hardcoded as big-endian. Change that to use the native endianness for the compile target so that the crashdumps are generated properly for each CPU type. Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com> Signed-off-by: Simon Horman <horms@verge.net.au>
-rw-r--r--kexec/arch/mips/crashdump-mips.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/kexec/arch/mips/crashdump-mips.c b/kexec/arch/mips/crashdump-mips.c
index e56b3ef..278ee01 100644
--- a/kexec/arch/mips/crashdump-mips.c
+++ b/kexec/arch/mips/crashdump-mips.c
@@ -288,9 +288,17 @@ static int cmdline_add_elfcorehdr(char *cmdline, unsigned long addr)
return 0;
}
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define ELFDATALOCAL ELFDATA2LSB
+#elif __BYTE_ORDER == __BIG_ENDIAN
+# define ELFDATALOCAL ELFDATA2MSB
+#else
+# error Unknown byte order
+#endif
+
static struct crash_elf_info elf_info64 = {
class: ELFCLASS64,
- data : ELFDATA2MSB,
+ data : ELFDATALOCAL,
machine : EM_MIPS,
page_offset : PAGE_OFFSET,
lowmem_limit : MAXMEM,
@@ -298,7 +306,7 @@ static struct crash_elf_info elf_info64 = {
static struct crash_elf_info elf_info32 = {
class: ELFCLASS32,
- data : ELFDATA2MSB,
+ data : ELFDATALOCAL,
machine : EM_MIPS,
page_offset : PAGE_OFFSET,
lowmem_limit : MAXMEM,