tile: Fix __pte_free_tlb
Tile's __pte_free_tlb() implementation makes assumptions about the generic mmu_gather implementation, cure this ;-) Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
This commit is contained in:
parent
cddb5de053
commit
342d87ef21
|
@ -252,19 +252,8 @@ void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte,
|
|||
int i;
|
||||
|
||||
pgtable_page_dtor(pte);
|
||||
tlb->need_flush = 1;
|
||||
if (tlb_fast_mode(tlb)) {
|
||||
struct page *pte_pages[L2_USER_PGTABLE_PAGES];
|
||||
for (i = 0; i < L2_USER_PGTABLE_PAGES; ++i)
|
||||
pte_pages[i] = pte + i;
|
||||
free_pages_and_swap_cache(pte_pages, L2_USER_PGTABLE_PAGES);
|
||||
return;
|
||||
}
|
||||
for (i = 0; i < L2_USER_PGTABLE_PAGES; ++i) {
|
||||
tlb->pages[tlb->nr++] = pte + i;
|
||||
if (tlb->nr >= FREE_PTE_NR)
|
||||
tlb_flush_mmu(tlb, 0, 0);
|
||||
}
|
||||
for (i = 0; i < L2_USER_PGTABLE_PAGES; ++i)
|
||||
tlb_remove_page(tlb, pte + i);
|
||||
}
|
||||
|
||||
#ifndef __tilegx__
|
||||
|
|
Loading…
Reference in New Issue