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.crac...@nxp.com>
---
v1-->v2
- no change

 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

Reply via email to