Changeset View
Changeset View
Standalone View
Standalone View
sys/powerpc/booke/pmap.c
Show First 20 Lines • Show All 1,526 Lines • ▼ Show 20 Lines | mmu_booke_remove(mmu_t mmu, pmap_t pmap, vm_offset_t va, vm_offset_t endva) | ||||
} | } | ||||
hold_flag = PTBL_HOLD_FLAG(pmap); | hold_flag = PTBL_HOLD_FLAG(pmap); | ||||
//debugf("mmu_booke_remove: hold_flag = %d\n", hold_flag); | //debugf("mmu_booke_remove: hold_flag = %d\n", hold_flag); | ||||
rw_wlock(&pvh_global_lock); | rw_wlock(&pvh_global_lock); | ||||
PMAP_LOCK(pmap); | PMAP_LOCK(pmap); | ||||
for (; va < endva; va += PAGE_SIZE) { | for (; va < endva; va += PAGE_SIZE) { | ||||
pte = pte_find(mmu, pmap, va); | pte = pte_find_next(mmu, pmap, &va); | ||||
if ((pte != NULL) && PTE_ISVALID(pte)) | if ((pte == NULL) || !PTE_ISVALID(pte)) | ||||
break; | |||||
if (va >= endva) | |||||
break; | |||||
pte_remove(mmu, pmap, va, hold_flag); | pte_remove(mmu, pmap, va, hold_flag); | ||||
} | } | ||||
PMAP_UNLOCK(pmap); | PMAP_UNLOCK(pmap); | ||||
rw_wunlock(&pvh_global_lock); | rw_wunlock(&pvh_global_lock); | ||||
//debugf("mmu_booke_remove: e\n"); | //debugf("mmu_booke_remove: e\n"); | ||||
} | } | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 1,545 Lines • Show Last 20 Lines |