MIPS: 64-bit: Fix o32 core dump
If an o32 process generates a core dump on a 64 bit kernel, the core file will not be correctly recognized. This is because ELF_CORE_COPY_REGS and ELF_CORE_COPY_TASK_REGS are not correctly defined for o32 and will use the default register set which would be CONFIG_64BIT in asm/elf.h. So we'll switch to use the right register defines in this situation by checking for WANT_COMPAT_REG_H and use the right defines of ELF_CORE_COPY_REGS and ELF_CORE_COPY_TASK_REGS. [Ralf: made ELF_CORE_COPY_TASK_REGS() bullet-proof against funny arguments.] Signed-off-by: Yong Zhang <yong.zhang@windriver.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
@@ -316,9 +316,13 @@ extern void elf_dump_regs(elf_greg_t *, struct pt_regs *regs);
|
||||
extern int dump_task_regs(struct task_struct *, elf_gregset_t *);
|
||||
extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);
|
||||
|
||||
#ifndef ELF_CORE_COPY_REGS
|
||||
#define ELF_CORE_COPY_REGS(elf_regs, regs) \
|
||||
elf_dump_regs((elf_greg_t *)&(elf_regs), regs);
|
||||
#endif
|
||||
#ifndef ELF_CORE_COPY_TASK_REGS
|
||||
#define ELF_CORE_COPY_TASK_REGS(tsk, elf_regs) dump_task_regs(tsk, elf_regs)
|
||||
#endif
|
||||
#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) \
|
||||
dump_task_fpu(tsk, elf_fpregs)
|
||||
|
||||
|
Reference in New Issue
Block a user