summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2010-04-23 18:53:17 +0000
committerjmallett <jmallett@FreeBSD.org>2010-04-23 18:53:17 +0000
commit57dd8a9a91e30a2b94ef34d227c41f697831d0cc (patch)
tree720482e3f931da05b32eb1c4f98e831859ca6edf /sys/mips
parent62aa81d6a0299b1180ccec6d3ee2a48d02e82701 (diff)
downloadFreeBSD-src-57dd8a9a91e30a2b94ef34d227c41f697831d0cc.zip
FreeBSD-src-57dd8a9a91e30a2b94ef34d227c41f697831d0cc.tar.gz
Large memory mappings are always CPU local and always done with interrupts
disabled. Be doubly-sure that we don't try to do a TLB shootdown on SMP systems for those mappings. Submitted by: C. Jayachandran
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mips/pmap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/mips/mips/pmap.c b/sys/mips/mips/pmap.c
index e3b7daf..32c0f92 100644
--- a/sys/mips/mips/pmap.c
+++ b/sys/mips/mips/pmap.c
@@ -251,11 +251,11 @@ caddr_t virtual_sys_start = (caddr_t)0;
#define PMAP_LMEM_UNMAP() \
pte = pmap_pte(kernel_pmap, sysm->base); \
*pte = PTE_G; \
- pmap_invalidate_page(kernel_pmap, sysm->base); \
+ pmap_TLB_invalidate_kernel(sysm->base); \
sysm->valid1 = 0; \
pte = pmap_pte(kernel_pmap, sysm->base + PAGE_SIZE); \
*pte = PTE_G; \
- pmap_invalidate_page(kernel_pmap, sysm->base + PAGE_SIZE); \
+ pmap_TLB_invalidate_kernel(sysm->base + PAGE_SIZE); \
sysm->valid2 = 0; \
sched_unpin(); \
intr_restore(intr); \
OpenPOWER on IntegriCloud