Module Name: src Committed By: matt Date: Wed Apr 2 13:26:22 UTC 2014
Modified Files: src/sys/arch/arm/arm32: pmap.c Log Message: braces are your friends. use them. To generate a diff of this commit: cvs rdiff -u -r1.276 -r1.277 src/sys/arch/arm/arm32/pmap.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/arm32/pmap.c diff -u src/sys/arch/arm/arm32/pmap.c:1.276 src/sys/arch/arm/arm32/pmap.c:1.277 --- src/sys/arch/arm/arm32/pmap.c:1.276 Wed Apr 2 12:36:05 2014 +++ src/sys/arch/arm/arm32/pmap.c Wed Apr 2 13:26:22 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.c,v 1.276 2014/04/02 12:36:05 matt Exp $ */ +/* $NetBSD: pmap.c,v 1.277 2014/04/02 13:26:22 matt Exp $ */ /* * Copyright 2003 Wasabi Systems, Inc. @@ -216,7 +216,7 @@ #include <arm/locore.h> //#include <arm/arm32/katelib.h> -__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.276 2014/04/02 12:36:05 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.277 2014/04/02 13:26:22 matt Exp $"); //#define PMAP_DEBUG #ifdef PMAP_DEBUG @@ -3204,20 +3204,23 @@ pmap_enter(pmap_t pm, vaddr_t va, paddr_ oflags); } #endif - } else - pmap_release_page_lock(md); - if ((pv = pool_get(&pmap_pv_pool, PR_NOWAIT)) == NULL){ - pmap_release_pmap_lock(pm); - if ((flags & PMAP_CANFAIL) == 0) - panic("pmap_enter: no pv entries"); - - if (pm != pmap_kernel()) - pmap_free_l2_bucket(pm, l2b, 0); - UVMHIST_LOG(maphist, " <-- done (ENOMEM)", - 0, 0, 0, 0); - return (ENOMEM); + } else { + pmap_release_page_lock(md); + pv = pool_get(&pmap_pv_pool, PR_NOWAIT); + if (pv == NULL) { + pmap_release_pmap_lock(pm); + if ((flags & PMAP_CANFAIL) == 0) + panic("pmap_enter: " + "no pv entries"); + + if (pm != pmap_kernel()) + pmap_free_l2_bucket(pm, l2b, 0); + UVMHIST_LOG(maphist, " <-- done (ENOMEM)", + 0, 0, 0, 0); + return (ENOMEM); + } + pmap_acquire_page_lock(md); } - pmap_acquire_page_lock(md); pmap_enter_pv(md, pa, pv, pm, va, nflags); } @@ -3630,7 +3633,7 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, v struct pv_entry *pv = NULL; #endif #endif - struct vm_page_md *md = VM_PAGE_TO_MD(pg); + struct vm_page_md *md = pg != NULL ? VM_PAGE_TO_MD(pg) : NULL; UVMHIST_FUNC(__func__); @@ -3672,9 +3675,9 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, v KASSERT((omd->pvh_attrs & PVF_KMPAGE) == 0); KASSERT((flags & PMAP_KMPAGE) == 0); #ifndef ARM_MMU_EXTENDED - pmap_acquire_page_lock(md); + pmap_acquire_page_lock(omd); pv = pmap_kremove_pg(opg, va); - pmap_release_page_lock(md); + pmap_release_page_lock(omd); #endif } #endif @@ -3756,11 +3759,12 @@ pmap_kenter_pa(vaddr_t va, paddr_t pa, v pool_put(&pmap_pv_pool, pv); #endif } - + KASSERT(md == NULL || !pmap_page_locked_p(md)); if (pmap_initialized) { UVMHIST_LOG(maphist, " <-- done (ptep %p: %#x -> %#x)", ptep, opte, npte, 0); } + } void