diff options
author | Jasper Lievisse Adriaanse <jasper@cvs.openbsd.org> | 2010-07-01 07:24:27 +0000 |
---|---|---|
committer | Jasper Lievisse Adriaanse <jasper@cvs.openbsd.org> | 2010-07-01 07:24:27 +0000 |
commit | a06be3313a3df65074d8244e75a1f85c689107c0 (patch) | |
tree | 2265f073d5aada18f3ca50b9930dd1c0e91e6a33 /sys/arch/sh | |
parent | 89d383c71ad84f4d1ad9b9f747df8fd8d59d166d (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.S | 7 |
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] */ |