summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2010-05-09 17:37:34 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2010-05-09 17:37:34 +0000
commite13399b6a644a4b3dc247be1255c30f6adb1d7de (patch)
tree9c680e50b981abc565c8b7c28b2af0eb0e0d14da /sys/arch
parentc66c771560a1325641de98c3c58bbcf0ec513a0f (diff)
Prevent "taken branch" exceptions from kernel space by clearing the PSL_T
bit before we enter a signal handler. "if you say so" miod@, "seems to make sense" jsing@
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/hppa/hppa/machdep.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arch/hppa/hppa/machdep.c b/sys/arch/hppa/hppa/machdep.c
index 88709266eed..1cd969bff6f 100644
--- a/sys/arch/hppa/hppa/machdep.c
+++ b/sys/arch/hppa/hppa/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.183 2010/05/02 22:59:11 kettenis Exp $ */
+/* $OpenBSD: machdep.c,v 1.184 2010/05/09 17:37:33 kettenis Exp $ */
/*
* Copyright (c) 1999-2003 Michael Shalayeff
@@ -1326,7 +1326,7 @@ sendsig(catcher, sig, mask, code, type, val)
tf->tf_arg2 = tf->tf_r4 = scp;
tf->tf_arg3 = (register_t)catcher;
tf->tf_sp = scp + sss;
- tf->tf_ipsw &= ~(PSL_N|PSL_B);
+ tf->tf_ipsw &= ~(PSL_N|PSL_B|PSL_T);
tf->tf_iioq_head = HPPA_PC_PRIV_USER | p->p_sigcode;
tf->tf_iioq_tail = tf->tf_iioq_head + 4;
tf->tf_iisq_tail = tf->tf_iisq_head = pcb->pcb_space;