/* * Called at the end of a mmu_gather operation to make sure the * TLB flush is completely done. */ void tlb_flush(struct mmu_gather *tlb) { if (Hash == 0) { /* * 603 needs to flush the whole TLB here since * it doesn't use a hash table. */ _tlbia(); } /* Push out batch of freed page tables */ pte_free_finish(); }
void tlb_flush(struct mmu_gather *tlb) { struct ppc64_tlb_batch *tlbbatch = &__get_cpu_var(ppc64_tlb_batch); /* If there's a TLB batch pending, then we must flush it because the * pages are going to be freed and we really don't want to have a CPU * access a freed page because it has a stale TLB */ if (tlbbatch->index) __flush_tlb_pending(tlbbatch); /* Push out batch of freed page tables */ pte_free_finish(); }