summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-08-22 18:12:24 +0000
committerkib <kib@FreeBSD.org>2013-08-22 18:12:24 +0000
commit05a9dff802e2ec3a2f8ab5836657ced5977fca68 (patch)
treeee8d62f2966140cf842124e46724b5ecf3d56ac8 /sys/amd64
parent076969f54a69e4b15a5489465a537f9eb246b869 (diff)
downloadFreeBSD-src-05a9dff802e2ec3a2f8ab5836657ced5977fca68.zip
FreeBSD-src-05a9dff802e2ec3a2f8ab5836657ced5977fca68.tar.gz
Revert r254501. Instead, reuse the type stability of the struct pmap
which is the part of struct vmspace, allocated from UMA_ZONE_NOFREE zone. Initialize the pmap lock in the vmspace zone init function, and remove pmap lock initialization and destruction from pmap_pinit() and pmap_release(). Suggested and reviewed by: alc (previous version) Tested by: pho Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/pmap.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 0c87c35..7fb1277 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -1687,8 +1687,6 @@ pmap_pinit(pmap_t pmap)
vm_page_t pml4pg;
int i;
- PMAP_LOCK_INIT(pmap);
-
/*
* allocate the page directory page
*/
@@ -1959,9 +1957,6 @@ pmap_release(pmap_t pmap)
KASSERT(vm_radix_is_empty(&pmap->pm_root),
("pmap_release: pmap has reserved page table page(s)"));
- rw_wlock(&pvh_global_lock);
- rw_wunlock(&pvh_global_lock);
-
m = PHYS_TO_VM_PAGE(pmap->pm_pml4[PML4PML4I] & PG_FRAME);
for (i = 0; i < NKPML4E; i++) /* KVA */
@@ -1973,7 +1968,6 @@ pmap_release(pmap_t pmap)
m->wire_count--;
atomic_subtract_int(&cnt.v_wire_count, 1);
vm_page_free_zero(m);
- PMAP_LOCK_DESTROY(pmap);
}
static int
OpenPOWER on IntegriCloud