summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorart <art@openbsd.org>2007-06-07 15:31:09 +0000
committerart <art@openbsd.org>2007-06-07 15:31:09 +0000
commit4c0ec3e8e80cb6bed77a4608e8204e6dec98442a (patch)
tree3567c3debff1d6622e8ccc4ae7de864796defe96
parentanother XXsize() botch (diff)
downloadwireguard-openbsd-4c0ec3e8e80cb6bed77a4608e8204e6dec98442a.tar.xz
wireguard-openbsd-4c0ec3e8e80cb6bed77a4608e8204e6dec98442a.zip
roller-coaster. The bug that corrupts the page tables is back.
So put back the flushg in pmap_release since at least it hides it and I can now reproduce.
-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 46955fb4776..b3f72727a33 100644
--- a/sys/arch/i386/i386/pmap.c
+++ b/sys/arch/i386/i386/pmap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.c,v 1.116 2007/05/31 22:30:25 art Exp $ */
+/* $OpenBSD: pmap.c,v 1.117 2007/06/07 15:31:09 art 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
*/