summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-07-07 16:47:58 +0000
committeralc <alc@FreeBSD.org>2004-07-07 16:47:58 +0000
commitd7d59aa241eab6d1f7941bc048c99a51deeb4082 (patch)
tree5affbcea5ed08f487c2cfee283d7f92906541ef5 /sys/amd64
parent9019bbc37fee83e3f4aad620e768dc6d182c0fd0 (diff)
downloadFreeBSD-src-d7d59aa241eab6d1f7941bc048c99a51deeb4082.zip
FreeBSD-src-d7d59aa241eab6d1f7941bc048c99a51deeb4082.tar.gz
Simplify the control flow in pmap_extract(), enabling the elimination of a
PMAP_UNLOCK() call.
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/pmap.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index d749215..8748923 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -766,8 +766,9 @@ pmap_extract(pmap_t pmap, vm_offset_t va)
pt_entry_t *pte;
pd_entry_t pde, *pdep;
+ rtval = 0;
if (pmap == NULL)
- return 0;
+ return (rtval);
PMAP_LOCK(pmap);
pdep = pmap_pde(pmap, va);
if (pdep != NULL) {
@@ -780,12 +781,10 @@ pmap_extract(pmap_t pmap, vm_offset_t va)
}
pte = pmap_pte(pmap, va);
rtval = (*pte & PG_FRAME) | (va & PAGE_MASK);
- PMAP_UNLOCK(pmap);
- return rtval;
}
}
PMAP_UNLOCK(pmap);
- return 0;
+ return (rtval);
}
/*
OpenPOWER on IntegriCloud