diff options
author | Marcin Nowakowski <marcin.nowakowski@imgtec.com> | 2016-12-02 10:49:09 +0100 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2016-12-09 08:56:21 +0100 |
commit | 18bf48b15c289e88cb65cdc758749e2735eac291 (patch) | |
tree | 101bf2c6e9e2d2b7e052bf5ff5ae871a9b90d8a7 | |
parent | fecd481fbe6102dac2beb467a616401a0cb8ab2e (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.c | 12 |
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, |