-/* $OpenBSD: pmap.c,v 1.32 2023/09/03 00:15:46 jca Exp $ */
+/* $OpenBSD: pmap.c,v 1.33 2023/09/03 00:23:25 jca Exp $ */
/*
* Copyright (c) 2019-2020 Brian Bamsch <bbamsch@google.com>
*/
if (flags & (PROT_READ|PROT_WRITE|PROT_EXEC|PMAP_WIRED)) {
pmap_pte_insert(pted);
+ tlb_flush_page(pm, va & ~PAGE_MASK);
}
- tlb_flush_page(pm, va & ~PAGE_MASK);
-
error = 0;
out:
pmap_unlock(pm);
}
pmap_pte_remove(pted, pm != pmap_kernel());
-
tlb_flush_page(pm, pted->pted_va & ~PAGE_MASK);
if (pted->pted_va & PTED_VA_EXEC_M) {
* so map the page!
*/
pmap_pte_insert(pted);
-
tlb_flush_page(pm, va & ~PAGE_MASK);
pg = PHYS_TO_VM_PAGE(pa);
* or that the mapping is not present in the hash table.
*/
pmap_pte_remove(pted, 0);
-
tlb_flush_page(pm, pted->pted_va & ~PAGE_MASK);
if (pted->pted_va & PTED_VA_EXEC_M)
pted->pted_pte &= ~PROT_EXEC;
}
pmap_pte_update(pted, pl3);
-
tlb_flush_page(pm, pted->pted_va & ~PAGE_MASK);
-
- return;
}
/*
vp3->l3[VP_IDX3(pted->pted_va)] = 0;
if (remove_pted)
vp3->vp[VP_IDX3(pted->pted_va)] = NULL;
-
- tlb_flush_page(pm, pted->pted_va);
}
/*
/* We actually made a change, so flush it and sync. */
pmap_pte_update(pted, pl3);
-
- /* Flush tlb. */
tlb_flush_page(pm, va & ~PAGE_MASK);
retcode = 1;