diff --git a/include/sbi/riscv_barrier.h b/include/sbi/riscv_barrier.h index 1fba8b82..8779ea5c 100644 --- a/include/sbi/riscv_barrier.h +++ b/include/sbi/riscv_barrier.h @@ -25,19 +25,19 @@ #define mb() RISCV_FENCE(iorw,iorw) /* Read Memory barrier */ -#define rmb() RISCV_FENCE(ir,ir) +#define rmb() RISCV_FENCE(ir,iorw) /* Write Memory barrier */ -#define wmb() RISCV_FENCE(ow,ow) +#define wmb() RISCV_FENCE(iorw,ow) /* SMP Read & Write Memory barrier */ #define smp_mb() RISCV_FENCE(rw,rw) /* SMP Read Memory barrier */ -#define smp_rmb() RISCV_FENCE(r,r) +#define smp_rmb() RISCV_FENCE(r,rw) /* SMP Write Memory barrier */ -#define smp_wmb() RISCV_FENCE(w,w) +#define smp_wmb() RISCV_FENCE(rw,w) /* CPU relax for busy loop */ #define cpu_relax() asm volatile ("" : : : "memory")