summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2015-06-05 18:36:07 +0000
committerderaadt <deraadt@openbsd.org>2015-06-05 18:36:07 +0000
commit17b1cd0bca58ca3bd4b305a99f470b4663de0640 (patch)
tree4a5a4cd722a727c1f0c9e76a169e38f626417dec
parentSimilarly, for sessions use a callback to free rather than checking (diff)
downloadwireguard-openbsd-17b1cd0bca58ca3bd4b305a99f470b4663de0640.tar.xz
wireguard-openbsd-17b1cd0bca58ca3bd4b305a99f470b4663de0640.zip
And part 2 of the onfault repair. Do the actual clearing of pcb_onfault
in copyerr itself, like other architectures of this type do. as a result of chatter between miod and kettenis
-rw-r--r--sys/arch/alpha/alpha/locore.s6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arch/alpha/alpha/locore.s b/sys/arch/alpha/alpha/locore.s
index 08359644b5b..14ad2656bc6 100644
--- a/sys/arch/alpha/alpha/locore.s
+++ b/sys/arch/alpha/alpha/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.38 2014/01/26 17:40:09 miod Exp $ */
+/* $OpenBSD: locore.s,v 1.39 2015/06/05 18:36:07 deraadt Exp $ */
/* $NetBSD: locore.s,v 1.94 2001/04/26 03:10:44 ross Exp $ */
/*-
@@ -1060,6 +1060,10 @@ NESTED(copyout, 3, 16, ra, IM_RA|IM_S0, 0)
LEAF(copyerr, 0)
LDGP(pv)
+ .set noat
+ ldq at_reg, P_ADDR(at_reg) /* clear handler. */
+ stq zero, U_PCB_ONFAULT(at_reg)
+ .set at
ldq ra, (16-8)(sp) /* restore ra. */
ldq s0, (16-16)(sp) /* restore s0. */
lda sp, 16(sp) /* kill stack frame. */