diff --git a/libraries/libmesosphere/source/arch/arm64/kern_cpu.cpp b/libraries/libmesosphere/source/arch/arm64/kern_cpu.cpp index 6225f28a8..e370a76e6 100644 --- a/libraries/libmesosphere/source/arch/arm64/kern_cpu.cpp +++ b/libraries/libmesosphere/source/arch/arm64/kern_cpu.cpp @@ -384,11 +384,13 @@ namespace ams::kern::arch::arm64::cpu { /* Store cache from L1 up to (level of coherence - 1). */ for (int level = 0; level < levels_of_coherency - 1; ++level) { PerformCacheOperationBySetWayImpl(level, StoreDataCacheLineBySetWayImpl); + DataSynchronizationBarrier(); } /* Flush cache from (level of coherence - 1) down to L0. */ for (int level = levels_of_coherency; level > 0; --level) { PerformCacheOperationBySetWayImpl(level - 1, FlushDataCacheLineBySetWayImpl); + DataSynchronizationBarrier(); } }