#include <asm/kvm_ppc.h>
#include <asm/kvm_e500.h>
+#include "../mm/mmu_decl.h"
#include "e500_tlb.h"
#define to_htlb1_esel(esel) (tlb1_entry_num - (esel) - 1)
void kvmppc_e500_tlb_put(struct kvm_vcpu *vcpu)
{
- _tlbia();
+ _tlbil_all();
}
/* Search the guest TLB for a matching entry. */
int i;
/* XXX Replace loop with fancy data structures. */
- /* needn't set modified since tlbia will make TLB1 coherent */
for (i = 0; i < tlb1_max_shadow_size(); i++)
kvmppc_e500_stlbe_invalidate(vcpu_e500, 1, i);
- _tlbia();
+ _tlbil_all();
}
}
kvmppc_e500_gtlbe_invalidate(vcpu_e500, tlbsel, esel);
}
- _tlbia();
+ _tlbil_all();
return EMULATE_DONE;
}
kvmppc_e500_shadow_release(vcpu_e500, tlbsel, i);
/* discard all guest mapping */
- _tlbia();
+ _tlbil_all();
}
void kvmppc_mmu_map(struct kvm_vcpu *vcpu, u64 eaddr, gpa_t gpaddr,