diff options
-rw-r--r-- | sys/amd64/amd64/pmap.c | 11 | ||||
-rw-r--r-- | sys/i386/i386/pmap.c | 15 |
2 files changed, 6 insertions, 20 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 76e5d26..999331e 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -986,10 +986,6 @@ pmap_unuse_pt(pmap_t pmap, vm_offset_t va, vm_page_t mpte) if (va >= VM_MAXUSER_ADDRESS) return 0; - if (mpte == NULL) { - mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va)); - } - return pmap_unwire_pte_hold(pmap, va, mpte); } @@ -1467,7 +1463,7 @@ static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va) { pt_entry_t oldpte; - vm_page_t m; + vm_page_t m, mpte; oldpte = pte_load_clear(ptq); if (oldpte & PG_W) @@ -1496,10 +1492,9 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va) vm_page_flag_set(m, PG_REFERENCED); return pmap_remove_entry(pmap, m, va); } else { - return pmap_unuse_pt(pmap, va, NULL); + mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va)); + return pmap_unuse_pt(pmap, va, mpte); } - - return 0; } /* diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index b0d6526..2b64cb7 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -1048,18 +1048,10 @@ pmap_unwire_pte_hold(pmap_t pmap, vm_page_t m) static int pmap_unuse_pt(pmap_t pmap, vm_offset_t va, vm_page_t mpte) { - unsigned ptepindex; - pd_entry_t ptepa; if (va >= VM_MAXUSER_ADDRESS) return 0; - if (mpte == NULL) { - ptepindex = (va >> PDRSHIFT); - ptepa = pmap->pm_pdir[ptepindex]; - mpte = PHYS_TO_VM_PAGE(ptepa); - } - return pmap_unwire_pte_hold(pmap, mpte); } @@ -1601,7 +1593,7 @@ static int pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va) { pt_entry_t oldpte; - vm_page_t m; + vm_page_t m, mpte; oldpte = pte_load_clear(ptq); if (oldpte & PG_W) @@ -1630,10 +1622,9 @@ pmap_remove_pte(pmap_t pmap, pt_entry_t *ptq, vm_offset_t va) vm_page_flag_set(m, PG_REFERENCED); return pmap_remove_entry(pmap, m, va); } else { - return pmap_unuse_pt(pmap, va, NULL); + mpte = PHYS_TO_VM_PAGE(*pmap_pde(pmap, va)); + return pmap_unuse_pt(pmap, va, mpte); } - - return 0; } /* |