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: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
@@ -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)
|
|||||||
}
|
}
|
||||||
#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,
|
|||||||
{
|
{
|
||||||
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);
|
||||||
|
Reference in New Issue
Block a user