diff options
| author | Will Deacon <will.deacon@arm.com> | 2019-03-01 13:28:00 +0000 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2019-04-27 09:33:47 +0200 |
| commit | a930f8ce20034ca7373eb2a3e91c2b9f6d5bb64c (patch) | |
| tree | 45d3ca8bcd00a2bf824239526aa3f9640aa94547 /include/linux | |
| parent | 12ae58ca7ec42fe23df5d0b0d01bce2ccb728fd5 (diff) | |
arm64: debug: Don't propagate UNKNOWN FAR into si_code for debug signals
commit b9a4b9d084d978f80eb9210727c81804588b42ff upstream.
FAR_EL1 is UNKNOWN for all debug exceptions other than those caused by
taking a hardware watchpoint. Unfortunately, if a debug handler returns
a non-zero value, then we will propagate the UNKNOWN FAR value to
userspace via the si_addr field of the SIGTRAP siginfo_t.
Instead, let's set si_addr to take on the PC of the faulting instruction,
which we have available in the current pt_regs.
Cc: <stable@vger.kernel.org>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions
