summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim/mmu_oea.c
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2010-10-04 16:07:48 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2010-10-04 16:07:48 +0000
commit09583f57805b64642c59c88c3b2049090f307df7 (patch)
tree481962d7fc9faafe3f3b933bf450e37dc003c3d5 /sys/powerpc/aim/mmu_oea.c
parent6a7d71b6f3e65a7aaea0b142a004d9168848530f (diff)
downloadFreeBSD-src-09583f57805b64642c59c88c3b2049090f307df7.zip
FreeBSD-src-09583f57805b64642c59c88c3b2049090f307df7.tar.gz
Follow exactly the steps in architecture manual for correctly invalidating
TLB entries instead of trying to cut corners.
Diffstat (limited to 'sys/powerpc/aim/mmu_oea.c')
-rw-r--r--sys/powerpc/aim/mmu_oea.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c
index dad3eda..27d4ef3 100644
--- a/sys/powerpc/aim/mmu_oea.c
+++ b/sys/powerpc/aim/mmu_oea.c
@@ -425,9 +425,9 @@ tlbie(vm_offset_t va)
{
mtx_lock_spin(&tlbie_mtx);
+ __asm __volatile("ptesync");
__asm __volatile("tlbie %0" :: "r"(va));
- __asm __volatile("tlbsync");
- powerpc_sync();
+ __asm __volatile("eieio; tlbsync; ptesync");
mtx_unlock_spin(&tlbie_mtx);
}
OpenPOWER on IntegriCloud