summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-09-13 20:36:01 +0000
committeralc <alc@FreeBSD.org>2004-09-13 20:36:01 +0000
commitf4543a41739417a92351ae7dcf4dfe55568eddcb (patch)
tree3d84159b918bf94fdaeae43c2e23c053ddac688c
parent4b5ce20c1da97d47ea1a504976ac7a7b2655cebb (diff)
downloadFreeBSD-src-f4543a41739417a92351ae7dcf4dfe55568eddcb.zip
FreeBSD-src-f4543a41739417a92351ae7dcf4dfe55568eddcb.tar.gz
Lock the kernel pmap in pmap_kenter().
Tested by: gallatin@
-rw-r--r--sys/powerpc/aim/mmu_oea.c2
-rw-r--r--sys/powerpc/powerpc/mmu_oea.c2
-rw-r--r--sys/powerpc/powerpc/pmap.c2
3 files changed, 6 insertions, 0 deletions
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c
index 591be13..5398d61 100644
--- a/sys/powerpc/aim/mmu_oea.c
+++ b/sys/powerpc/aim/mmu_oea.c
@@ -1219,6 +1219,7 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa)
}
}
+ PMAP_LOCK(kernel_pmap);
error = pmap_pvo_enter(kernel_pmap, pmap_upvo_zone,
&pmap_pvo_kunmanaged, va, pa, pte_lo, PVO_WIRED);
@@ -1232,6 +1233,7 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa)
if ((pte_lo & (PTE_I | PTE_G)) == 0) {
pmap_syncicache(pa, PAGE_SIZE);
}
+ PMAP_UNLOCK(kernel_pmap);
}
/*
diff --git a/sys/powerpc/powerpc/mmu_oea.c b/sys/powerpc/powerpc/mmu_oea.c
index 591be13..5398d61 100644
--- a/sys/powerpc/powerpc/mmu_oea.c
+++ b/sys/powerpc/powerpc/mmu_oea.c
@@ -1219,6 +1219,7 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa)
}
}
+ PMAP_LOCK(kernel_pmap);
error = pmap_pvo_enter(kernel_pmap, pmap_upvo_zone,
&pmap_pvo_kunmanaged, va, pa, pte_lo, PVO_WIRED);
@@ -1232,6 +1233,7 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa)
if ((pte_lo & (PTE_I | PTE_G)) == 0) {
pmap_syncicache(pa, PAGE_SIZE);
}
+ PMAP_UNLOCK(kernel_pmap);
}
/*
diff --git a/sys/powerpc/powerpc/pmap.c b/sys/powerpc/powerpc/pmap.c
index 591be13..5398d61 100644
--- a/sys/powerpc/powerpc/pmap.c
+++ b/sys/powerpc/powerpc/pmap.c
@@ -1219,6 +1219,7 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa)
}
}
+ PMAP_LOCK(kernel_pmap);
error = pmap_pvo_enter(kernel_pmap, pmap_upvo_zone,
&pmap_pvo_kunmanaged, va, pa, pte_lo, PVO_WIRED);
@@ -1232,6 +1233,7 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa)
if ((pte_lo & (PTE_I | PTE_G)) == 0) {
pmap_syncicache(pa, PAGE_SIZE);
}
+ PMAP_UNLOCK(kernel_pmap);
}
/*
OpenPOWER on IntegriCloud