summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2006-07-02 18:22:47 +0000
committeralc <alc@FreeBSD.org>2006-07-02 18:22:47 +0000
commit4748a85152897a81bd4fa4b0c504e4dab6a67a52 (patch)
tree52334e0c050fe0dabea09c0d708efb99de22385b /sys/amd64
parentd1b6a983460386cb68c8053c3f8a2d0423b6daac (diff)
downloadFreeBSD-src-4748a85152897a81bd4fa4b0c504e4dab6a67a52.zip
FreeBSD-src-4748a85152897a81bd4fa4b0c504e4dab6a67a52.tar.gz
Correct an error in the new pmap_collect(), thus only affecting HEAD.
Specifically, the pv entry was always being freed to the caller's pmap instead of the pmap to which the pv entry belongs.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/pmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index d95bbaa..aba07a2 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -1608,9 +1608,9 @@ pmap_collect(pmap_t locked_pmap, struct vpgqueues *vpq)
vm_page_flag_clear(m, PG_WRITEABLE);
m->md.pv_list_count--;
pmap_unuse_pt(pmap, va, ptepde);
+ free_pv_entry(pmap, pv);
if (pmap != locked_pmap)
PMAP_UNLOCK(pmap);
- free_pv_entry(locked_pmap, pv);
}
}
}
OpenPOWER on IntegriCloud