ARM: 5759/1: Add register information of threads to coredump
authorArtem Bityutskiy <dedekind1@gmail.com>
Tue, 13 Oct 2009 07:54:30 +0000 (08:54 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Wed, 14 Oct 2009 09:33:05 +0000 (10:33 +0100)
Defines ELF_CORE_COPY_TASK_REGS so that CPU register information
of every thread is included in coredump. Without this, only the faulting
thread is coredumped.

Cc: Roger Quadros <ext-roger.quadros@nokia.com>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/elf.h
arch/arm/kernel/process.c

index c3b911ee9151af1501adefc7362dc7738e7d204b..6aac3f5bb2f3ee1975f53578d2742a5e5d1295b9 100644 (file)
@@ -98,6 +98,9 @@ extern int elf_check_arch(const struct elf32_hdr *);
 extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int);
 #define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk)
 
+int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
+#define ELF_CORE_COPY_TASK_REGS dump_task_regs
+
 #define USE_ELF_CORE_DUMP
 #define ELF_EXEC_PAGESIZE      4096
 
index 790fbee92ec5acd7f98eb48c69448c152c15fbb8..0d96d0171c05601bf59a5e44c579cd7f59e9af23 100644 (file)
@@ -327,6 +327,15 @@ copy_thread(unsigned long clone_flags, unsigned long stack_start,
        return 0;
 }
 
+/*
+ * Fill in the task's elfregs structure for a core dump.
+ */
+int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs)
+{
+       elf_core_copy_regs(elfregs, task_pt_regs(t));
+       return 1;
+}
+
 /*
  * fill in the fpe structure for a core dump...
  */