summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2007-05-28 18:31:12 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2007-05-28 18:31:12 +0000
commit9d32b7668fc681bfe47769a66ac8c7291c4e438f (patch)
tree9710a1ac17c6b41204b37129ed6b9a3b89caca1f /sys/arch
parent5e4dafb47c0e11d5953ccd33bbcf70baa1ecadf3 (diff)
Flush pmap from tlb before freeing it. Makes Core2Duo boxes more
stable, but is not a fully-understood or final fix. From and ok art@
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/i386/i386/pmap.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/arch/i386/i386/pmap.c b/sys/arch/i386/i386/pmap.c
index f694ff32653..051a4f887f2 100644
--- a/sys/arch/i386/i386/pmap.c
+++ b/sys/arch/i386/i386/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.113 2007/05/27 21:33:25 tom Exp $ */
+/* $OpenBSD: pmap.c,v 1.114 2007/05/28 18:31:11 krw Exp $ */
/* $NetBSD: pmap.c,v 1.91 2000/06/02 17:46:37 thorpej Exp $ */
/*
@@ -1532,6 +1532,11 @@ pmap_release(struct pmap *pmap)
simple_unlock(&pmaps_lock);
/*
+ * Before we free the pmap just make sure it's not cached anywhere.
+ */
+ tlbflushg();
+
+ /*
* free any remaining PTPs
*/