summaryrefslogtreecommitdiffstats
path: root/sys/ia64
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/ia64
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/ia64')
-rw-r--r--sys/ia64/ia64/pmap.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c
index 03710a3..b23c77c 100644
--- a/sys/ia64/ia64/pmap.c
+++ b/sys/ia64/ia64/pmap.c
@@ -622,6 +622,8 @@ pmap_free_rid(uint32_t rid)
void
pmap_pinit0(struct pmap *pmap)
{
+
+ PMAP_LOCK_INIT(pmap);
/* kernel_pmap is the same as any other pmap. */
pmap_pinit(pmap);
}
@@ -635,7 +637,6 @@ pmap_pinit(struct pmap *pmap)
{
int i;
- PMAP_LOCK_INIT(pmap);
for (i = 0; i < IA64_VM_MINKERN_REGION; i++)
pmap->pm_rid[i] = pmap_allocate_rid();
TAILQ_INIT(&pmap->pm_pvchunk);
@@ -660,7 +661,6 @@ pmap_release(pmap_t pmap)
for (i = 0; i < IA64_VM_MINKERN_REGION; i++)
if (pmap->pm_rid[i])
pmap_free_rid(pmap->pm_rid[i]);
- PMAP_LOCK_DESTROY(pmap);
}
/*
OpenPOWER on IntegriCloud