summaryrefslogtreecommitdiff
path: root/sys/arch/sh
diff options
context:
space:
mode:
authorJasper Lievisse Adriaanse <jasper@cvs.openbsd.org>2010-07-01 07:24:27 +0000
committerJasper Lievisse Adriaanse <jasper@cvs.openbsd.org>2010-07-01 07:24:27 +0000
commita06be3313a3df65074d8244e75a1f85c689107c0 (patch)
tree2265f073d5aada18f3ca50b9930dd1c0e91e6a33 /sys/arch/sh
parent89d383c71ad84f4d1ad9b9f747df8fd8d59d166d (diff)
- don't do curupte checks if the current miss address is user space
from netbsd ok miod@
Diffstat (limited to 'sys/arch/sh')
-rw-r--r--sys/arch/sh/sh/vectors.S7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/arch/sh/sh/vectors.S b/sys/arch/sh/sh/vectors.S
index 909a21bf620..a8f366bd17f 100644
--- a/sys/arch/sh/sh/vectors.S
+++ b/sys/arch/sh/sh/vectors.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: vectors.S,v 1.6 2010/06/29 21:03:15 jasper Exp $ */
+/* $OpenBSD: vectors.S,v 1.7 2010/07/01 07:24:26 jasper Exp $ */
/* $NetBSD: exception_vector.S,v 1.19 2006/08/22 21:47:57 uwe Exp $ */
/*-
@@ -149,11 +149,12 @@ NENTRY(sh3_vector_tlbmiss)
/* if kernel stack is in P3, handle it here fast */
#if !defined(P1_STACK)
+ cmp/pz r6
+ bt 6f /* userspace address, proceed to handler */
+
/* Load kernel stack */
mov.l .L3_VPN_MASK, r0
and r6, r0 /* VPN */
- tst r0, r0
- bt 6f /* punt if VPN is 0 */
mov.l .L3_CURUPTE, r1
mov.l @r1, r1 /* upte = &l->l_md.md_upte[0] */