| 3130 | } |
| 3131 | |
| 3132 | static void |
| 3133 | pmap_remove_entry(pmap_t pmap, vm_page_t m, vm_offset_t va) |
| 3134 | { |
| 3135 | struct md_page *pvh; |
| 3136 | |
| 3137 | rw_assert(&pvh_global_lock, RA_WLOCKED); |
| 3138 | pmap_pvh_free(&m->md, pmap, va); |
| 3139 | if (TAILQ_EMPTY(&m->md.pv_list) && (m->flags & PG_FICTITIOUS) == 0) { |
| 3140 | pvh = pa_to_pvh(VM_PAGE_TO_PHYS(m)); |
| 3141 | if (TAILQ_EMPTY(&pvh->pv_list)) |
| 3142 | vm_page_aflag_clear(m, PGA_WRITEABLE); |
| 3143 | } |
| 3144 | } |
| 3145 | |
| 3146 | static void |
| 3147 | pmap_pv_demote_pte1(pmap_t pmap, vm_offset_t va, vm_paddr_t pa) |
no test coverage detected