KVM: PPC: e500: tlbsx: fix tlb0 esel
authorScott Wood <scottwood@freescale.com>
Thu, 18 Aug 2011 20:25:23 +0000 (15:25 -0500)
committerAvi Kivity <avi@redhat.com>
Mon, 5 Mar 2012 12:52:24 +0000 (14:52 +0200)
It should contain the way, not the absolute TLB0 index.

Signed-off-by: Scott Wood <scottwood@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/powerpc/kvm/e500_tlb.c

index f19ae2f615210242b872c6f0539cc6dcbbe7414d..ec17148392b4c1690b76bd3ae33e225a2866f6eb 100644 (file)
@@ -853,6 +853,8 @@ int kvmppc_e500_emul_tlbsx(struct kvm_vcpu *vcpu, int rb)
        }
 
        if (gtlbe) {
+               esel &= vcpu_e500->gtlb_params[tlbsel].ways - 1;
+
                vcpu_e500->mas0 = MAS0_TLBSEL(tlbsel) | MAS0_ESEL(esel)
                        | MAS0_NV(vcpu_e500->gtlb_nv[tlbsel]);
                vcpu_e500->mas1 = gtlbe->mas1;