Commit 953dbbed authored by Catalin Marinas's avatar Catalin Marinas

arm64: Do not report user faults for handled signals

Currently user faults (page, undefined instruction) are always reported
even though the user may have a signal handler for them. This patch adds
unhandled_signal() check together with printk_ratelimit() for these
cases.
Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 726dcaa1
...@@ -267,7 +267,8 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs) ...@@ -267,7 +267,8 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
return; return;
#endif #endif
if (show_unhandled_signals) { if (show_unhandled_signals && unhandled_signal(current, SIGILL) &&
printk_ratelimit()) {
pr_info("%s[%d]: undefined instruction: pc=%p\n", pr_info("%s[%d]: undefined instruction: pc=%p\n",
current->comm, task_pid_nr(current), pc); current->comm, task_pid_nr(current), pc);
dump_instr(KERN_INFO, regs); dump_instr(KERN_INFO, regs);
...@@ -294,7 +295,7 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs) ...@@ -294,7 +295,7 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs)
} }
#endif #endif
if (show_unhandled_signals) { if (show_unhandled_signals && printk_ratelimit()) {
pr_info("%s[%d]: syscall %d\n", current->comm, pr_info("%s[%d]: syscall %d\n", current->comm,
task_pid_nr(current), (int)regs->syscallno); task_pid_nr(current), (int)regs->syscallno);
dump_instr("", regs); dump_instr("", regs);
......
...@@ -113,7 +113,8 @@ static void __do_user_fault(struct task_struct *tsk, unsigned long addr, ...@@ -113,7 +113,8 @@ static void __do_user_fault(struct task_struct *tsk, unsigned long addr,
{ {
struct siginfo si; struct siginfo si;
if (show_unhandled_signals) { if (show_unhandled_signals && unhandled_signal(tsk, sig) &&
printk_ratelimit()) {
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\n",
tsk->comm, task_pid_nr(tsk), fault_name(esr), sig, tsk->comm, task_pid_nr(tsk), fault_name(esr), sig,
addr, esr); addr, esr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment