diff options
author | alc <alc@FreeBSD.org> | 2004-09-13 20:36:01 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-09-13 20:36:01 +0000 |
commit | f4543a41739417a92351ae7dcf4dfe55568eddcb (patch) | |
tree | 3d84159b918bf94fdaeae43c2e23c053ddac688c | |
parent | 4b5ce20c1da97d47ea1a504976ac7a7b2655cebb (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | sys/powerpc/powerpc/mmu_oea.c | 2 | ||||
-rw-r--r-- | sys/powerpc/powerpc/pmap.c | 2 |
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); } /* |