aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/kvm/tlb.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/mips/kvm/tlb.c b/arch/mips/kvm/tlb.c
index c215470fdcb0..fbab2f747721 100644
--- a/arch/mips/kvm/tlb.c
+++ b/arch/mips/kvm/tlb.c
@@ -185,6 +185,13 @@ int kvm_mips_host_tlb_inv(struct kvm_vcpu *vcpu, unsigned long va,
185 185
186 local_irq_restore(flags); 186 local_irq_restore(flags);
187 187
188 /*
189 * We don't want to get reserved instruction exceptions for missing tlb
190 * entries.
191 */
192 if (cpu_has_vtag_icache)
193 flush_icache_all();
194
188 if (user && idx_user >= 0) 195 if (user && idx_user >= 0)
189 kvm_debug("%s: Invalidated guest user entryhi %#lx @ idx %d\n", 196 kvm_debug("%s: Invalidated guest user entryhi %#lx @ idx %d\n",
190 __func__, (va & VPN2_MASK) | 197 __func__, (va & VPN2_MASK) |
@@ -260,6 +267,13 @@ int kvm_vz_host_tlb_inv(struct kvm_vcpu *vcpu, unsigned long va)
260 htw_start(); 267 htw_start();
261 local_irq_restore(flags); 268 local_irq_restore(flags);
262 269
270 /*
271 * We don't want to get reserved instruction exceptions for missing tlb
272 * entries.
273 */
274 if (cpu_has_vtag_icache)
275 flush_icache_all();
276
263 if (idx > 0) 277 if (idx > 0)
264 kvm_debug("%s: Invalidated root entryhi %#lx @ idx %d\n", 278 kvm_debug("%s: Invalidated root entryhi %#lx @ idx %d\n",
265 __func__, (va & VPN2_MASK) | 279 __func__, (va & VPN2_MASK) |