Changeset View
Changeset View
Standalone View
Standalone View
head/sys/sparc64/sparc64/pmap.c
Show First 20 Lines • Show All 1,302 Lines • ▼ Show 20 Lines | #endif | ||||
pmap_qremove((vm_offset_t)pm->pm_tsb, TSB_PAGES); | pmap_qremove((vm_offset_t)pm->pm_tsb, TSB_PAGES); | ||||
obj = pm->pm_tsb_obj; | obj = pm->pm_tsb_obj; | ||||
VM_OBJECT_WLOCK(obj); | VM_OBJECT_WLOCK(obj); | ||||
KASSERT(obj->ref_count == 1, ("pmap_release: tsbobj ref count != 1")); | KASSERT(obj->ref_count == 1, ("pmap_release: tsbobj ref count != 1")); | ||||
while (!TAILQ_EMPTY(&obj->memq)) { | while (!TAILQ_EMPTY(&obj->memq)) { | ||||
m = TAILQ_FIRST(&obj->memq); | m = TAILQ_FIRST(&obj->memq); | ||||
m->md.pmap = NULL; | m->md.pmap = NULL; | ||||
m->wire_count--; | vm_page_unwire_noq(m); | ||||
atomic_subtract_int(&vm_cnt.v_wire_count, 1); | |||||
vm_page_free_zero(m); | vm_page_free_zero(m); | ||||
} | } | ||||
VM_OBJECT_WUNLOCK(obj); | VM_OBJECT_WUNLOCK(obj); | ||||
} | } | ||||
/* | /* | ||||
* Grow the number of kernel page table entries. Unneeded. | * Grow the number of kernel page table entries. Unneeded. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 1,001 Lines • Show Last 20 Lines |