summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugh Graham <hugh@cvs.openbsd.org>2001-08-21 14:06:26 +0000
committerHugh Graham <hugh@cvs.openbsd.org>2001-08-21 14:06:26 +0000
commit7222b3ec411457153e41be6ba95ecefe79ded9aa (patch)
tree209833c087e4b911be6d4571e4a7ba466f8b9523
parent6c8ed4a1c8da96e893122a29ba08a8c40716b077 (diff)
Art says it's ok for pmap_enter to effect no mapping change,
so just return success if this happens.
-rw-r--r--sys/arch/vax/vax/pmap.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/sys/arch/vax/vax/pmap.c b/sys/arch/vax/vax/pmap.c
index 7367836cc41..2241c7659e2 100644
--- a/sys/arch/vax/vax/pmap.c
+++ b/sys/arch/vax/vax/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.20 2001/08/11 01:56:18 art Exp $ */
+/* $OpenBSD: pmap.c,v 1.21 2001/08/21 14:06:25 hugh Exp $ */
/* $NetBSD: pmap.c,v 1.74 1999/11/13 21:32:25 matt Exp $ */
/*
* Copyright (c) 1994, 1998, 1999 Ludd, University of Lule}, Sweden.
@@ -741,10 +741,6 @@ if (startpmapdebug)
oldpte = patch[i] & ~(PG_V|PG_M);
- /* No mapping change. Not allowed to happen. */
- if (newpte == oldpte)
- panic("pmap_enter onto myself");
-
pv = pv_table + (p >> PGSHIFT);
/* wiring change? */
@@ -754,6 +750,12 @@ if (startpmapdebug)
return (KERN_SUCCESS);
}
+ /* mapping unchanged? just return. */
+ if (newpte == oldpte) {
+ RECURSEEND;
+ return (KERN_SUCCESS);
+ }
+
/* Changing mapping? */
oldpte &= PG_FRAME;
if ((newpte & PG_FRAME) != oldpte) {