summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2006-06-07 17:14:48 +0000
committeralc <alc@FreeBSD.org>2006-06-07 17:14:48 +0000
commit0dc86d8ad015557217f5f7b5b6d9e51342089ac7 (patch)
treeae5c05c897fc0649e15ae01a7fb78ff790e02da6 /sys/arm
parent835d031b9c59836476b4f4e8fa040810183e50b9 (diff)
downloadFreeBSD-src-0dc86d8ad015557217f5f7b5b6d9e51342089ac7.zip
FreeBSD-src-0dc86d8ad015557217f5f7b5b6d9e51342089ac7.tar.gz
Properly synchronize access to the pmap in pmap_extract_and_hold().
Eliminate an unneeded variable from pmap_extract_and_hold(). Tested by: cognet@
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/pmap.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/sys/arm/arm/pmap.c b/sys/arm/arm/pmap.c
index f91a7f0..9016848 100644
--- a/sys/arm/arm/pmap.c
+++ b/sys/arm/arm/pmap.c
@@ -3720,17 +3720,16 @@ vm_page_t
pmap_extract_and_hold(pmap_t pmap, vm_offset_t va, vm_prot_t prot)
{
struct l2_dtable *l2;
- pd_entry_t *pl1pd, l1pd;
+ pd_entry_t l1pd;
pt_entry_t *ptep, pte;
vm_paddr_t pa;
vm_page_t m = NULL;
u_int l1idx;
l1idx = L1_IDX(va);
- pl1pd = &pmap->pm_l1->l1_kva[l1idx];
- l1pd = *pl1pd;
vm_page_lock_queues();
PMAP_LOCK(pmap);
+ l1pd = pmap->pm_l1->l1_kva[l1idx];
if (l1pte_section_p(l1pd)) {
/*
* These should only happen for pmap_kernel()
OpenPOWER on IntegriCloud