summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-07-17 04:01:29 +0000
committeralc <alc@FreeBSD.org>2004-07-17 04:01:29 +0000
commit8744c288f759fd1cee621b5848721d5bef0eef2a (patch)
treedd465f78be4719a60eb346eb664f7e75677afc3a /sys
parent096572d3130a7c7b6772edc3cff97a76f085f169 (diff)
downloadFreeBSD-src-8744c288f759fd1cee621b5848721d5bef0eef2a.zip
FreeBSD-src-8744c288f759fd1cee621b5848721d5bef0eef2a.tar.gz
MFamd64 revision 1.478
Simplify pmap_remove_pages(), eliminating unnecessary indirection.
Diffstat (limited to 'sys')
-rw-r--r--sys/alpha/alpha/pmap.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/alpha/alpha/pmap.c b/sys/alpha/alpha/pmap.c
index 9bb117c..0ffbf9a 100644
--- a/sys/alpha/alpha/pmap.c
+++ b/sys/alpha/alpha/pmap.c
@@ -2204,7 +2204,7 @@ pmap_remove_pages(pmap, sva, eva)
#ifdef PMAP_REMOVE_PAGES_CURPROC_ONLY
pte = vtopte(pv->pv_va);
#else
- pte = pmap_pte_quick(pv->pv_pmap, pv->pv_va);
+ pte = pmap_pte_quick(pmap, pv->pv_va);
#endif
if (!pmap_pte_v(pte))
panic("pmap_remove_pages: page on pm_pvlist has no pte\n");
@@ -2222,22 +2222,21 @@ pmap_remove_pages(pmap, sva, eva)
m = PHYS_TO_VM_PAGE(pmap_pte_pa(&tpte));
- pv->pv_pmap->pm_stats.resident_count--;
+ pmap->pm_stats.resident_count--;
if ((tpte & PG_FOW) == 0)
if (pmap_track_modified(pv->pv_va))
vm_page_dirty(m);
npv = TAILQ_NEXT(pv, pv_plist);
- TAILQ_REMOVE(&pv->pv_pmap->pm_pvlist, pv, pv_plist);
+ TAILQ_REMOVE(&pmap->pm_pvlist, pv, pv_plist);
m->md.pv_list_count--;
TAILQ_REMOVE(&m->md.pv_list, pv, pv_list);
- if (TAILQ_FIRST(&m->md.pv_list) == NULL) {
+ if (TAILQ_EMPTY(&m->md.pv_list))
vm_page_flag_clear(m, PG_WRITEABLE);
- }
- pmap_unuse_pt(pv->pv_pmap, pv->pv_va, pv->pv_ptem);
+ pmap_unuse_pt(pmap, pv->pv_va, pv->pv_ptem);
free_pv_entry(pv);
}
pmap_invalidate_all(pmap);
OpenPOWER on IntegriCloud