diff options
author | alc <alc@FreeBSD.org> | 2004-07-07 16:47:58 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-07-07 16:47:58 +0000 |
commit | d7d59aa241eab6d1f7941bc048c99a51deeb4082 (patch) | |
tree | 5affbcea5ed08f487c2cfee283d7f92906541ef5 /sys/amd64 | |
parent | 9019bbc37fee83e3f4aad620e768dc6d182c0fd0 (diff) | |
download | FreeBSD-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.c | 7 |
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); } /* |