Skip to content

Commit

Permalink
KVM: PPC: E500: Remove kvmppc_e500_tlbil_all usage from guest TLB code
Browse files Browse the repository at this point in the history
The guest TLB handling code should not have any insight into how the host
TLB shadow code works.

kvmppc_e500_tlbil_all() is a function that is used for distinction between
e500v2 and e500mc (E.HV) on how to flush shadow entries. This function really
is private between the e500.c/e500mc.c file and e500_mmu_host.c.

Instead of this one, use the public kvmppc_core_flush_tlb() function to flush
all shadow TLB entries. As a nice side effect, with this we also end up
flushing TLB1 entries which we forgot to do before.

Signed-off-by: Alexander Graf <agraf@suse.de>
  • Loading branch information
Alexander Graf committed Jan 24, 2013
1 parent 483ba97 commit b9e3e20
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions arch/powerpc/kvm/e500_mmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,8 @@ int kvmppc_e500_emul_mt_mmucsr0(struct kvmppc_vcpu_e500 *vcpu_e500, ulong value)
for (esel = 0; esel < vcpu_e500->gtlb_params[1].entries; esel++)
kvmppc_e500_gtlbe_invalidate(vcpu_e500, 1, esel);

/* Invalidate all vcpu id mappings */
kvmppc_e500_tlbil_all(vcpu_e500);
/* Invalidate all host shadow mappings */
kvmppc_core_flush_tlb(&vcpu_e500->vcpu);

return EMULATE_DONE;
}
Expand Down Expand Up @@ -269,8 +269,8 @@ int kvmppc_e500_emul_tlbivax(struct kvm_vcpu *vcpu, gva_t ea)
kvmppc_e500_gtlbe_invalidate(vcpu_e500, tlbsel, esel);
}

/* Invalidate all vcpu id mappings */
kvmppc_e500_tlbil_all(vcpu_e500);
/* Invalidate all host shadow mappings */
kvmppc_core_flush_tlb(&vcpu_e500->vcpu);

return EMULATE_DONE;
}
Expand Down

0 comments on commit b9e3e20

Please sign in to comment.