* Remove a single page from a process address space. */
| 4138 | * Remove a single page from a process address space. |
| 4139 | */ |
| 4140 | static void |
| 4141 | pmap_remove_page(pmap_t pmap, vm_offset_t va, struct spglist *free) |
| 4142 | { |
| 4143 | pt2_entry_t *pte2p; |
| 4144 | |
| 4145 | rw_assert(&pvh_global_lock, RA_WLOCKED); |
| 4146 | KASSERT(curthread->td_pinned > 0, |
| 4147 | ("%s: curthread not pinned", __func__)); |
| 4148 | PMAP_LOCK_ASSERT(pmap, MA_OWNED); |
| 4149 | if ((pte2p = pmap_pte2_quick(pmap, va)) == NULL || |
| 4150 | !pte2_is_valid(pte2_load(pte2p))) |
| 4151 | return; |
| 4152 | pmap_remove_pte2(pmap, pte2p, va, free); |
| 4153 | } |
| 4154 | |
| 4155 | /* |
| 4156 | * Remove the given range of addresses from the specified map. |
no test coverage detected