diff --git a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S
index bd332e41532fa8a95df01bb484affde12c81e3a8..9f3048e64e8441a0b672dab91531a2d2b1b2d31c 100644
--- a/arch/sparc64/kernel/entry.S
+++ b/arch/sparc64/kernel/entry.S
@@ -1786,3 +1786,12 @@ sun4v_cpu_qconf:
 	ta	HV_FAST_TRAP
 	retl
 	 nop
+
+	/* returns %o0:	status
+	 */
+	.globl	sun4v_cpu_yield
+sun4v_cpu_yield:
+	mov	HV_FAST_CPU_YIELD, %o5
+	ta	HV_FAST_TRAP
+	retl
+	 nop
diff --git a/include/asm-sparc64/hypervisor.h b/include/asm-sparc64/hypervisor.h
index cd5fbcd9556e1cb979f586876c735b753d6793cb..726e2ea03ce348dd986ba2f9bfd58e84e213d2d8 100644
--- a/include/asm-sparc64/hypervisor.h
+++ b/include/asm-sparc64/hypervisor.h
@@ -258,6 +258,9 @@
  */
 #define HV_FAST_CPU_YIELD		0x12
 
+#ifndef __ASSEMBLY__
+extern unsigned long sun4v_cpu_yield(void);
+#endif
 
 /* cpu_qconf()
  * TRAP:	HV_FAST_TRAP