svn commit: r264183 - head/sys/arm/arm
Ian Lepore
ian at FreeBSD.org
Sun Apr 6 00:17:41 UTC 2014
Author: ian
Date: Sun Apr 6 00:17:41 2014
New Revision: 264183
URL: http://svnweb.freebsd.org/changeset/base/264183
Log:
Add a couple more required TLB flushes.
These should have been part of r264129, they are part of the overall set
of changes that got several weeks of testing. I must have fumbled them
while merging various patchsets.
Modified:
head/sys/arm/arm/pmap-v6.c
Modified: head/sys/arm/arm/pmap-v6.c
==============================================================================
--- head/sys/arm/arm/pmap-v6.c Sat Apr 5 23:20:49 2014 (r264182)
+++ head/sys/arm/arm/pmap-v6.c Sun Apr 6 00:17:41 2014 (r264183)
@@ -853,6 +853,8 @@ pmap_free_l2_bucket(pmap_t pmap, struct
if (l1pd == (L1_C_DOM(pmap->pm_domain) | L1_TYPE_C)) {
*pl1pd = 0;
PTE_SYNC(pl1pd);
+ cpu_tlb_flushD_SE((vm_offset_t)ptep);
+ cpu_cpwait();
}
/*
@@ -2147,6 +2149,8 @@ pmap_grow_l2_bucket(pmap_t pmap, vm_offs
L1_C_PROTO;
PTE_SYNC(pl1pd);
}
+ cpu_tlb_flushID_SE(va);
+ cpu_cpwait();
return (l2b);
}
@@ -2427,6 +2431,7 @@ pmap_kenter_internal(vm_offset_t va, vm_
if (opte == 0)
l2b->l2b_occupancy++;
}
+ cpu_cpwait();
PDEBUG(1, printf("pmap_kenter: pte = %08x, opte = %08x, npte = %08x\n",
(uint32_t) ptep, opte, *ptep));
@@ -4956,10 +4961,10 @@ pmap_advise(pmap_t pmap, vm_offset_t sva
cpu_tlb_flushID_SE(sva);
else if (PTE_BEEN_REFD(opte))
cpu_tlb_flushD_SE(sva);
- cpu_cpwait();
}
}
}
+ cpu_cpwait();
rw_wunlock(&pvh_global_lock);
PMAP_UNLOCK(pmap);
}
More information about the svn-src-all
mailing list