Go to the documentation of this file.
15 #ifndef _ASM_GENERIC__TLB_H
16 #define _ASM_GENERIC__TLB_H
19 #include <asm/pgalloc.h>
20 #include <asm/tlbflush.h>
22 #ifdef CONFIG_HAVE_RCU_TABLE_FREE
57 #define MAX_TABLE_BATCH \
58 ((PAGE_SIZE - sizeof(struct mmu_table_batch)) / sizeof(void *))
69 #define MMU_GATHER_BUNDLE 8
78 #define MAX_GATHER_BATCH \
79 ((PAGE_SIZE - sizeof(struct mmu_gather_batch)) / sizeof(void *))
86 #ifdef CONFIG_HAVE_RCU_TABLE_FREE
101 #define HAVE_GENERIC_MMU_GATHER
139 #define tlb_remove_tlb_entry(tlb, ptep, address) \
141 tlb->need_flush = 1; \
142 __tlb_remove_tlb_entry(tlb, ptep, address); \
149 #ifndef __tlb_remove_pmd_tlb_entry
150 #define __tlb_remove_pmd_tlb_entry(tlb, pmdp, address) do {} while (0)
153 #define tlb_remove_pmd_tlb_entry(tlb, pmdp, address) \
155 tlb->need_flush = 1; \
156 __tlb_remove_pmd_tlb_entry(tlb, pmdp, address); \
159 #define pte_free_tlb(tlb, ptep, address) \
161 tlb->need_flush = 1; \
162 __pte_free_tlb(tlb, ptep, address); \
165 #ifndef __ARCH_HAS_4LEVEL_HACK
166 #define pud_free_tlb(tlb, pudp, address) \
168 tlb->need_flush = 1; \
169 __pud_free_tlb(tlb, pudp, address); \
173 #define pmd_free_tlb(tlb, pmdp, address) \
175 tlb->need_flush = 1; \
176 __pmd_free_tlb(tlb, pmdp, address); \
179 #define tlb_migrate_finish(mm) do {} while (0)