svn commit: r294789 - head/sys/arm/arm
Svatopluk Kraus
skra at FreeBSD.org
Tue Jan 26 09:50:25 UTC 2016
Author: skra
Date: Tue Jan 26 09:50:23 2016
New Revision: 294789
URL: https://svnweb.freebsd.org/changeset/base/294789
Log:
Make code more compact and readable better in pmap_extract()
like functions. No functional change.
This is a follow up to r294722.
Suggested by: kib
Modified:
head/sys/arm/arm/pmap-v6.c
head/sys/arm/arm/pmap.c
Modified: head/sys/arm/arm/pmap-v6.c
==============================================================================
--- head/sys/arm/arm/pmap-v6.c Tue Jan 26 09:42:13 2016 (r294788)
+++ head/sys/arm/arm/pmap-v6.c Tue Jan 26 09:50:23 2016 (r294789)
@@ -3446,14 +3446,10 @@ pmap_extract_locked(pmap_t pmap, vm_offs
pte = ptep[l2pte_index(va)];
if (pte == 0)
return (0);
- switch (pte & L2_TYPE_MASK) {
- case L2_TYPE_L:
+ if ((pte & L2_TYPE_MASK) == L2_TYPE_L)
pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET);
- break;
- default:
+ else
pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET);
- break;
- }
}
return (pa);
}
@@ -3515,20 +3511,15 @@ retry:
PMAP_UNLOCK(pmap);
return (NULL);
} else {
- switch (pte & L2_TYPE_MASK) {
- case L2_TYPE_L:
+ if ((pte & L2_TYPE_MASK) == L2_TYPE_L)
panic("extract and hold section mapping");
- break;
- default:
+ else
pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET);
- break;
- }
if (vm_page_pa_tryrelock(pmap, pa & PG_FRAME, &paddr))
goto retry;
m = PHYS_TO_VM_PAGE(pa);
vm_page_hold(m);
}
-
}
PMAP_UNLOCK(pmap);
@@ -3567,14 +3558,10 @@ pmap_dump_kextract(vm_offset_t va, pt2_e
pa = 0;
goto out;
}
- switch (pte & L2_TYPE_MASK) {
- case L2_TYPE_L:
+ if ((pte & L2_TYPE_MASK) == L2_TYPE_L)
pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET);
- break;
- default:
+ else
pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET);
- break;
- }
}
out:
if (pte2p != NULL)
Modified: head/sys/arm/arm/pmap.c
==============================================================================
--- head/sys/arm/arm/pmap.c Tue Jan 26 09:42:13 2016 (r294788)
+++ head/sys/arm/arm/pmap.c Tue Jan 26 09:50:23 2016 (r294789)
@@ -2787,18 +2787,14 @@ pmap_kremove(vm_offset_t va)
pte = &l2b->l2b_kva[l2pte_index(va)];
opte = *pte;
if (l2pte_valid(opte)) {
- /* pa = vtophs(va) taken from pmap_extract() */
- switch (opte & L2_TYPE_MASK) {
- case L2_TYPE_L:
+ /* pa = vtophs(va) taken from pmap_extract() */
+ if ((opte & L2_TYPE_MASK) == L2_TYPE_L)
pa = (opte & L2_L_FRAME) | (va & L2_L_OFFSET);
- break;
- default:
+ else
pa = (opte & L2_S_FRAME) | (va & L2_S_OFFSET);
- break;
- }
- /* note: should never have to remove an allocation
- * before the pvzone is initialized.
- */
+ /* note: should never have to remove an allocation
+ * before the pvzone is initialized.
+ */
rw_wlock(&pvh_global_lock);
PMAP_LOCK(pmap_kernel());
if (pvzone != NULL && (m = vm_phys_paddr_to_vm_page(pa)) &&
@@ -3645,14 +3641,10 @@ pmap_extract_locked(pmap_t pmap, vm_offs
pte = ptep[l2pte_index(va)];
if (pte == 0)
return (0);
- switch (pte & L2_TYPE_MASK) {
- case L2_TYPE_L:
+ if ((pte & L2_TYPE_MASK) == L2_TYPE_L)
pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET);
- break;
- default:
+ else
pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET);
- break;
- }
}
return (pa);
}
@@ -3717,15 +3709,10 @@ retry:
return (NULL);
}
if (pte & L2_S_PROT_W || (prot & VM_PROT_WRITE) == 0) {
- switch (pte & L2_TYPE_MASK) {
- case L2_TYPE_L:
+ if ((pte & L2_TYPE_MASK) == L2_TYPE_L)
pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET);
- break;
-
- default:
+ else
pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET);
- break;
- }
if (vm_page_pa_tryrelock(pmap, pa & PG_FRAME, &paddr))
goto retry;
m = PHYS_TO_VM_PAGE(pa);
@@ -3769,14 +3756,10 @@ pmap_dump_kextract(vm_offset_t va, pt2_e
pa = 0;
goto out;
}
- switch (pte & L2_TYPE_MASK) {
- case L2_TYPE_L:
+ if ((pte & L2_TYPE_MASK) == L2_TYPE_L)
pa = (pte & L2_L_FRAME) | (va & L2_L_OFFSET);
- break;
- default:
+ else
pa = (pte & L2_S_FRAME) | (va & L2_S_OFFSET);
- break;
- }
}
out:
if (pte2p != NULL)
More information about the svn-src-all
mailing list