Remove PTE VA mappings for tracked pages in 64-bit mode
This was done in 32-bit mode, but not duplicated when 64-bit mode was brought in. Without this, stale mappings can be left, leading to odd crashes when the wrong VA is checked in XX_PhysToVirt() (dpaa(4)).
This commit is contained in:
parent
52f39da1f8
commit
94a9d7c3b9
@ -1291,6 +1291,10 @@ pte_remove(mmu_t mmu, pmap_t pmap, vm_offset_t va, u_int8_t flags)
|
||||
|
||||
/* Remove pv_entry from pv_list. */
|
||||
pv_remove(pmap, va, m);
|
||||
} else if (m->md.pv_tracked) {
|
||||
pv_remove(pmap, va, m);
|
||||
if (TAILQ_EMPTY(&m->md.pv_list))
|
||||
m->md.pv_tracked = false;
|
||||
}
|
||||
mtx_lock_spin(&tlbivax_mutex);
|
||||
tlb_miss_lock();
|
||||
|
Loading…
Reference in New Issue
Block a user