diff --git a/headers/private/kernel/arch/riscv64/arch_atomic.h b/headers/private/kernel/arch/riscv64/arch_atomic.h index 8a10e814ed..52f16d9139 100644 --- a/headers/private/kernel/arch/riscv64/arch_atomic.h +++ b/headers/private/kernel/arch/riscv64/arch_atomic.h @@ -12,23 +12,21 @@ static inline void memory_read_barrier_inline(void) { - // TODO: investigate reparate read/write barriers - __sync_synchronize(); + asm volatile("fence ir, ir" : : : "memory"); } static inline void memory_write_barrier_inline(void) { - // TODO: investigate reparate read/write barriers - __sync_synchronize(); + asm volatile("fence ow, ow" : : : "memory"); } static inline void memory_full_barrier_inline(void) { - __sync_synchronize(); + asm volatile("fence iorw, iorw" : : : "memory"); }