Index: sys/arm64/arm64/cpufunc_asm.S =================================================================== --- sys/arm64/arm64/cpufunc_asm.S +++ sys/arm64/arm64/cpufunc_asm.S @@ -96,6 +96,7 @@ END(arm64_setttb) ENTRY(arm64_tlb_flushID) + dsb ishst #ifdef SMP tlbi vmalle1is #else Index: sys/arm64/arm64/pmap.c =================================================================== --- sys/arm64/arm64/pmap.c +++ sys/arm64/arm64/pmap.c @@ -2862,6 +2862,7 @@ /* Create the new mapping */ pmap_load_store(pte, newpte); + dsb(ishst); critical_exit(); intr_restore(intr); @@ -3281,6 +3282,7 @@ } else { /* New mappig */ pmap_load_store(l3, new_l3); + dsb(ishst); } #if VM_NRESERVLEVEL > 0 @@ -3435,6 +3437,7 @@ * Map the superpage. */ (void)pmap_load_store(l2, new_l2); + dsb(ishst); atomic_add_long(&pmap_l2_mappings, 1); CTR2(KTR_PMAP, "pmap_enter_l2: success for va %#lx in pmap %p",