1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 #ifndef __ASM_VDSO_PROCESSOR_H 3 #define __ASM_VDSO_PROCESSOR_H 4 5 #ifndef __ASSEMBLY__ 6 7 #include <asm/barrier.h> 8 9 static inline void cpu_relax(void) 10 { 11 #ifdef __riscv_muldiv 12 int dummy; 13 /* In lieu of a halt instruction, induce a long-latency stall. */ 14 __asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy)); 15 #endif 16 barrier(); 17 } 18 19 #endif /* __ASSEMBLY__ */ 20 21 #endif /* __ASM_VDSO_PROCESSOR_H */ 22