aboutsummaryrefslogtreecommitdiff
path: root/sys/powerpc/powerpc/exec_machdep.c
diff options
context:
space:
mode:
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2018-01-25 18:09:26 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2018-01-25 18:09:26 +0000
commit3e1b393a5155fdd1e016babf2a9a8aece35af33f (patch)
treef7ae0c5b46e6805569aa666dd05122b2e6eb6671 /sys/powerpc/powerpc/exec_machdep.c
parent5b810fe4a6f903653c2643fb3d494798388e46fe (diff)
downloadsrc-3e1b393a5155fdd1e016babf2a9a8aece35af33f.tar.gz
src-3e1b393a5155fdd1e016babf2a9a8aece35af33f.zip
Treat DSE exceptions like DSI exceptions when generating signinfo.
Both can generate SIGSEGV, but DSEs would have put the wrong address into the siginfo structure when the signal was delivered. MFC after: 1 week
Notes
Notes: svn path=/head/; revision=328408
Diffstat (limited to 'sys/powerpc/powerpc/exec_machdep.c')
-rw-r--r--sys/powerpc/powerpc/exec_machdep.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/powerpc/powerpc/exec_machdep.c b/sys/powerpc/powerpc/exec_machdep.c
index 7e80c9267689..13009ea5e715 100644
--- a/sys/powerpc/powerpc/exec_machdep.c
+++ b/sys/powerpc/powerpc/exec_machdep.c
@@ -154,7 +154,8 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
* Fill siginfo structure.
*/
ksi->ksi_info.si_signo = ksi->ksi_signo;
- ksi->ksi_info.si_addr = (void *)((tf->exc == EXC_DSI) ?
+ ksi->ksi_info.si_addr =
+ (void *)((tf->exc == EXC_DSI || tf->exc == EXC_DSE) ?
tf->dar : tf->srr0);
#ifdef COMPAT_FREEBSD32