[PATCH 04/11] powerpc/fsl: Emulate SPRN_BUCSR register

Diana Craciun diana.craciun at nxp.com
Thu Dec 13 01:03:03 AEDT 2018


In order to flush the branch predictor the guest kernel
performs writes to the BUCSR register which is hypervisor
privilleged. However, the branch predictor is flushed at
each KVM entry, so the branch predictor has been already
flushed, so just return as soon as possible to guest.

Signed-off-by: Diana Craciun <diana.craciun at nxp.com>
---
 arch/powerpc/kvm/e500_emulate.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/powerpc/kvm/e500_emulate.c b/arch/powerpc/kvm/e500_emulate.c
index 3f8189e..d0eb670 100644
--- a/arch/powerpc/kvm/e500_emulate.c
+++ b/arch/powerpc/kvm/e500_emulate.c
@@ -276,6 +276,11 @@ int kvmppc_core_emulate_mtspr_e500(struct kvm_vcpu *vcpu, int sprn, ulong spr_va
 		 */
 		vcpu->arch.pwrmgtcr0 = spr_val;
 		break;
+		/* if we are here, it means that we have already flushed the
+		 * branch predictor, so just return to guest
+		 */
+	case SPRN_BUCSR:
+		break;
 
 	/* extra exceptions */
 #ifdef CONFIG_SPE_POSSIBLE
-- 
2.5.5



More information about the Linuxppc-dev mailing list