summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-07-13 20:56:18 +0000
committerpeter <peter@FreeBSD.org>2002-07-13 20:56:18 +0000
commit995438bbe58ef8b7b5c8e843376821a0eb84672e (patch)
tree2337e094d7d61edfe93dc40eab5338290a124ef5
parent828e129a104d290776ee93555930a9c9f53b7bd6 (diff)
downloadFreeBSD-src-995438bbe58ef8b7b5c8e843376821a0eb84672e.zip
FreeBSD-src-995438bbe58ef8b7b5c8e843376821a0eb84672e.tar.gz
Bandaid for SMP. Changing APTDpde without a global shootdown is not
safe yet. We used to do a global shootdown here anyway so another day or so shouldn't hurt.
-rw-r--r--sys/amd64/amd64/pmap.c4
-rw-r--r--sys/i386/i386/pmap.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 037de9f..03e3aa4 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -740,7 +740,7 @@ get_ptbase(pmap)
/* otherwise, we are alternate address space */
if (frame != (APTDpde & PG_FRAME)) {
APTDpde = (pd_entry_t) (frame | PG_RW | PG_V);
- invltlb();
+ pmap_invalidate_all(kernel_pmap); /* XXX Bandaid */
}
return APTmap;
}
@@ -2638,7 +2638,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len,
*/
if (dst_frame != (APTDpde & PG_FRAME)) {
APTDpde = dst_frame | PG_RW | PG_V;
- invltlb();
+ pmap_invalidate_all(kernel_pmap); /* XXX Bandaid */
}
src_pte = vtopte(addr);
dst_pte = avtopte(addr);
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index 037de9f..03e3aa4 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -740,7 +740,7 @@ get_ptbase(pmap)
/* otherwise, we are alternate address space */
if (frame != (APTDpde & PG_FRAME)) {
APTDpde = (pd_entry_t) (frame | PG_RW | PG_V);
- invltlb();
+ pmap_invalidate_all(kernel_pmap); /* XXX Bandaid */
}
return APTmap;
}
@@ -2638,7 +2638,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len,
*/
if (dst_frame != (APTDpde & PG_FRAME)) {
APTDpde = dst_frame | PG_RW | PG_V;
- invltlb();
+ pmap_invalidate_all(kernel_pmap); /* XXX Bandaid */
}
src_pte = vtopte(addr);
dst_pte = avtopte(addr);
OpenPOWER on IntegriCloud