summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2008-01-03 17:09:42 +0000
committerkettenis <kettenis@openbsd.org>2008-01-03 17:09:42 +0000
commit74abb17cf9c461deee6902aa8a72d79d93638c47 (patch)
tree4f0f51be8c37942dee2e490d678332bc394951d5
parentborrow more from other pages; dlg ok (diff)
downloadwireguard-openbsd-74abb17cf9c461deee6902aa8a72d79d93638c47.tar.xz
wireguard-openbsd-74abb17cf9c461deee6902aa8a72d79d93638c47.zip
Make slowtrap check the real stack pointer instead of whatever is in %g6.
Should fix PR 5617, 5637 and 5657. Remove bogus comment as pointed out by miod@
-rw-r--r--sys/arch/sparc64/sparc64/locore.s10
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s
index 74b17ee1c68..2c10e72b3f9 100644
--- a/sys/arch/sparc64/sparc64/locore.s
+++ b/sys/arch/sparc64/sparc64/locore.s
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.s,v 1.106 2007/12/23 15:33:41 kettenis Exp $ */
+/* $OpenBSD: locore.s,v 1.107 2008/01/03 17:09:42 kettenis Exp $ */
/* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */
/*
@@ -2671,10 +2671,7 @@ Lslowtrap_reenter:
ba,a,pt %icc, return_from_trap
nop
NOTREACHED
-#if 1
-/*
- * This code is no longer needed.
- */
+
/*
* Do a `software' trap by re-entering the trap code, possibly first
* switching from interrupt stack to kernel stack. This is used for
@@ -2698,7 +2695,7 @@ softtrap:
sethi %hi(EINTSTACK-INTSTACK), %g7
or %g5, %lo(EINTSTACK-BIAS), %g5
dec %g7
- sub %g5, %g6, %g5
+ sub %g5, %sp, %g5
sethi %hi(CPCB), %g6
andncc %g5, %g7, %g0
bnz,pt %xcc, Lslowtrap_reenter
@@ -2751,7 +2748,6 @@ softtrap:
#endif /* DEBUG */
ba,pt %xcc, Lslowtrap_reenter
mov %g6, %sp
-#endif /* 1 */
#if 0
/*