diff options
author | alc <alc@FreeBSD.org> | 2006-07-02 18:22:47 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2006-07-02 18:22:47 +0000 |
commit | 4748a85152897a81bd4fa4b0c504e4dab6a67a52 (patch) | |
tree | 52334e0c050fe0dabea09c0d708efb99de22385b /sys/amd64 | |
parent | d1b6a983460386cb68c8053c3f8a2d0423b6daac (diff) | |
download | FreeBSD-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.c | 2 |
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); } } } |