Lines Matching refs:tlb
48 extern void tlb_table_flush(struct mmu_gather *tlb);
49 extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
52 arch_tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, in arch_tlb_gather_mmu() argument
55 tlb->mm = mm; in arch_tlb_gather_mmu()
56 tlb->start = start; in arch_tlb_gather_mmu()
57 tlb->end = end; in arch_tlb_gather_mmu()
58 tlb->fullmm = !(start | (end+1)); in arch_tlb_gather_mmu()
59 tlb->batch = NULL; in arch_tlb_gather_mmu()
62 static inline void tlb_flush_mmu_tlbonly(struct mmu_gather *tlb) in tlb_flush_mmu_tlbonly() argument
64 __tlb_flush_mm_lazy(tlb->mm); in tlb_flush_mmu_tlbonly()
67 static inline void tlb_flush_mmu_free(struct mmu_gather *tlb) in tlb_flush_mmu_free() argument
69 tlb_table_flush(tlb); in tlb_flush_mmu_free()
73 static inline void tlb_flush_mmu(struct mmu_gather *tlb) in tlb_flush_mmu() argument
75 tlb_flush_mmu_tlbonly(tlb); in tlb_flush_mmu()
76 tlb_flush_mmu_free(tlb); in tlb_flush_mmu()
80 arch_tlb_finish_mmu(struct mmu_gather *tlb, in arch_tlb_finish_mmu() argument
84 tlb->start = start; in arch_tlb_finish_mmu()
85 tlb->end = end; in arch_tlb_finish_mmu()
88 tlb_flush_mmu(tlb); in arch_tlb_finish_mmu()
96 static inline bool __tlb_remove_page(struct mmu_gather *tlb, struct page *page) in __tlb_remove_page() argument
102 static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page) in tlb_remove_page() argument
107 static inline bool __tlb_remove_page_size(struct mmu_gather *tlb, in __tlb_remove_page_size() argument
110 return __tlb_remove_page(tlb, page); in __tlb_remove_page_size()
113 static inline void tlb_remove_page_size(struct mmu_gather *tlb, in tlb_remove_page_size() argument
116 return tlb_remove_page(tlb, page); in tlb_remove_page_size()
123 static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, in pte_free_tlb() argument
126 page_table_free_rcu(tlb, (unsigned long *) pte, address); in pte_free_tlb()
136 static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in pmd_free_tlb() argument
139 if (tlb->mm->context.asce_limit <= _REGION3_SIZE) in pmd_free_tlb()
142 tlb_remove_table(tlb, pmd); in pmd_free_tlb()
152 static inline void p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d, in p4d_free_tlb() argument
155 if (tlb->mm->context.asce_limit <= _REGION1_SIZE) in p4d_free_tlb()
157 tlb_remove_table(tlb, p4d); in p4d_free_tlb()
167 static inline void pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in pud_free_tlb() argument
170 if (tlb->mm->context.asce_limit <= _REGION2_SIZE) in pud_free_tlb()
172 tlb_remove_table(tlb, pud); in pud_free_tlb()
175 #define tlb_start_vma(tlb, vma) do { } while (0) argument
176 #define tlb_end_vma(tlb, vma) do { } while (0) argument
177 #define tlb_remove_tlb_entry(tlb, ptep, addr) do { } while (0) argument
178 #define tlb_remove_pmd_tlb_entry(tlb, pmdp, addr) do { } while (0) argument
180 #define tlb_remove_huge_tlb_entry(h, tlb, ptep, address) \ argument
181 tlb_remove_tlb_entry(tlb, ptep, address)
184 static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb, in tlb_remove_check_page_size_change() argument