|
|
@@ -263,35 +263,6 @@ void kvm_mips_flush_host_tlb(int skip_kseg0)
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(kvm_mips_flush_host_tlb);
|
|
|
|
|
|
-void kvm_local_flush_tlb_all(void)
|
|
|
-{
|
|
|
- unsigned long flags;
|
|
|
- unsigned long old_ctx;
|
|
|
- int entry = 0;
|
|
|
-
|
|
|
- local_irq_save(flags);
|
|
|
- /* Save old context and create impossible VPN2 value */
|
|
|
- old_ctx = read_c0_entryhi();
|
|
|
- write_c0_entrylo0(0);
|
|
|
- write_c0_entrylo1(0);
|
|
|
-
|
|
|
- /* Blast 'em all away. */
|
|
|
- while (entry < current_cpu_data.tlbsize) {
|
|
|
- /* Make sure all entries differ. */
|
|
|
- write_c0_entryhi(UNIQUE_ENTRYHI(entry));
|
|
|
- write_c0_index(entry);
|
|
|
- mtc0_tlbw_hazard();
|
|
|
- tlb_write_indexed();
|
|
|
- tlbw_use_hazard();
|
|
|
- entry++;
|
|
|
- }
|
|
|
- write_c0_entryhi(old_ctx);
|
|
|
- mtc0_tlbw_hazard();
|
|
|
-
|
|
|
- local_irq_restore(flags);
|
|
|
-}
|
|
|
-EXPORT_SYMBOL_GPL(kvm_local_flush_tlb_all);
|
|
|
-
|
|
|
/**
|
|
|
* kvm_mips_suspend_mm() - Suspend the active mm.
|
|
|
* @cpu The CPU we're running on.
|