aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristina Martsenko2017-06-09 16:35:54 +0100
committerWill Deacon2017-06-12 12:33:37 +0100
commit83016b204225d69516de3d57489783fafd6a0ecc (patch)
tree6db60d3ddb3b8a5336255a74202c49ecb98ec5a7
parentbf396c09c2447a787d02af34cf167e953f85fa42 (diff)
arm64: mm: print file name of faulting vma
Print out the name of the file associated with the vma that faulted. This is usually the executable or shared library name. We already print out the task name, but also printing the library name is useful for pinpointing bugs to libraries. Also print the base address and size of the vma, which together with the PC (printed by __show_regs) gives the offset into the library. Fault prints now look like: test[2361]: unhandled level 2 translation fault (11) at 0x00000012, esr 0x92000006, in libfoo.so[ffffa0145000+1000] This is already done on x86, for more details see commit 03252919b798 ("x86: print which shared library/executable faulted in segfault etc. messages v3"). Acked-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
-rw-r--r--arch/arm64/mm/fault.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index b5a1605398b7..ad7c9c94d379 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -261,9 +261,11 @@ static void __do_user_fault(struct task_struct *tsk, unsigned long addr,
if (unhandled_signal(tsk, sig) && show_unhandled_signals_ratelimited()) {
inf = esr_to_fault_info(esr);
- pr_info("%s[%d]: unhandled %s (%d) at 0x%08lx, esr 0x%03x\n",
+ pr_info("%s[%d]: unhandled %s (%d) at 0x%08lx, esr 0x%03x",
tsk->comm, task_pid_nr(tsk), inf->name, sig,
addr, esr);
+ print_vma_addr(KERN_CONT ", in ", regs->pc);
+ pr_cont("\n");
__show_regs(regs);
}