Commit f3a900b3 authored by Eric W. Biederman's avatar Eric W. Biederman

signal/arm64: Add and use arm64_force_sig_ptrace_errno_trap

Add arm64_force_sig_ptrace_errno_trap for consistency with
arm64_force_sig_fault and use it where appropriate.

This adds the show_signal logic to the force_sig_errno_trap case,
where it was apparently overlooked earlier.
Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Tested-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent 2627f034
...@@ -39,6 +39,7 @@ void force_signal_inject(int signal, int code, unsigned long address); ...@@ -39,6 +39,7 @@ void force_signal_inject(int signal, int code, unsigned long address);
void arm64_notify_segfault(unsigned long addr); void arm64_notify_segfault(unsigned long addr);
void arm64_force_sig_fault(int signo, int code, void __user *addr, const char *str); void arm64_force_sig_fault(int signo, int code, void __user *addr, const char *str);
void arm64_force_sig_mceerr(int code, void __user *addr, short lsb, const char *str); void arm64_force_sig_mceerr(int code, void __user *addr, short lsb, const char *str);
void arm64_force_sig_ptrace_errno_trap(int errno, void __user *addr, const char *str);
/* /*
* Move regs->pc to next instruction and do necessary setup before it * Move regs->pc to next instruction and do necessary setup before it
......
...@@ -202,7 +202,9 @@ static void ptrace_hbptriggered(struct perf_event *bp, ...@@ -202,7 +202,9 @@ static void ptrace_hbptriggered(struct perf_event *bp,
break; break;
} }
} }
force_sig_ptrace_errno_trap(si_errno, (void __user *)bkpt->trigger); arm64_force_sig_ptrace_errno_trap(si_errno,
(void __user *)bkpt->trigger,
desc);
} }
#endif #endif
arm64_force_sig_fault(SIGTRAP, TRAP_HWBKPT, arm64_force_sig_fault(SIGTRAP, TRAP_HWBKPT,
......
...@@ -262,6 +262,13 @@ void arm64_force_sig_mceerr(int code, void __user *addr, short lsb, ...@@ -262,6 +262,13 @@ void arm64_force_sig_mceerr(int code, void __user *addr, short lsb,
force_sig_mceerr(code, addr, lsb, current); force_sig_mceerr(code, addr, lsb, current);
} }
void arm64_force_sig_ptrace_errno_trap(int errno, void __user *addr,
const char *str)
{
arm64_show_signal(SIGTRAP, str);
force_sig_ptrace_errno_trap(errno, addr);
}
void arm64_notify_die(const char *str, struct pt_regs *regs, void arm64_notify_die(const char *str, struct pt_regs *regs,
int signo, int sicode, void __user *addr, int signo, int sicode, void __user *addr,
int err) int err)
......
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