diff options
Diffstat (limited to 'arch/riscv/include/asm/vdso/processor.h')
-rw-r--r-- | arch/riscv/include/asm/vdso/processor.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/vdso/processor.h b/arch/riscv/include/asm/vdso/processor.h index 134388cbaaa1..8f383f05a290 100644 --- a/arch/riscv/include/asm/vdso/processor.h +++ b/arch/riscv/include/asm/vdso/processor.h @@ -5,6 +5,7 @@ #ifndef __ASSEMBLY__ #include <asm/barrier.h> +#include <asm/insn-def.h> static inline void cpu_relax(void) { @@ -13,6 +14,12 @@ static inline void cpu_relax(void) /* In lieu of a halt instruction, induce a long-latency stall. */ __asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy)); #endif + + /* + * Reduce instruction retirement. + * This assumes the PC changes. + */ + __asm__ __volatile__ (RISCV_PAUSE); barrier(); } |