From: Anton Blanchard <anton@samba.org>
Date: Thu, 12 Jun 2014 08:16:10 +0000 (+1000)
Subject: KVM: PPC: Book3S HV: Fix ABIv2 indirect branch issue
X-Git-Tag: firefly_0821_release~176^2~3455^2~10^2~56
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=05a308c722822b0fbcc706b54be70f9bb9d52539;p=firefly-linux-kernel-4.4.55.git

KVM: PPC: Book3S HV: Fix ABIv2 indirect branch issue

To establish addressability quickly, ABIv2 requires the target
address of the function being called to be in r12.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
---

diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index 868347ef09fd..da1cac5ae288 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1913,8 +1913,8 @@ hcall_try_real_mode:
 	lwax	r3,r3,r4
 	cmpwi	r3,0
 	beq	guest_exit_cont
-	add	r3,r3,r4
-	mtctr	r3
+	add	r12,r3,r4
+	mtctr	r12
 	mr	r3,r9		/* get vcpu pointer */
 	ld	r4,VCPU_GPR(R4)(r9)
 	bctrl