/Linux-v4.19/arch/arm/include/asm/ |
D | tlb.h | 26 #define tlb_flush(tlb) ((void) tlb) argument 53 extern void tlb_table_flush(struct mmu_gather *tlb); 54 extern void tlb_remove_table(struct mmu_gather *tlb, void *table); 56 #define tlb_remove_entry(tlb, entry) tlb_remove_table(tlb, entry) argument 58 #define tlb_remove_entry(tlb, entry) tlb_remove_page(tlb, entry) argument 97 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument 99 if (tlb->fullmm || !tlb->vma) in tlb_flush() 100 flush_tlb_mm(tlb->mm); in tlb_flush() 101 else if (tlb->range_end > 0) { in tlb_flush() 102 flush_tlb_range(tlb->vma, tlb->range_start, tlb->range_end); in tlb_flush() [all …]
|
/Linux-v4.19/arch/ia64/include/asm/ |
D | tlb.h | 96 ia64_tlb_flush_mmu_tlbonly(struct mmu_gather *tlb, unsigned long start, unsigned long end) in ia64_tlb_flush_mmu_tlbonly() argument 98 tlb->need_flush = 0; in ia64_tlb_flush_mmu_tlbonly() 100 if (tlb->fullmm) { in ia64_tlb_flush_mmu_tlbonly() 106 flush_tlb_mm(tlb->mm); in ia64_tlb_flush_mmu_tlbonly() 121 struct vm_area_struct vma = TLB_FLUSH_VMA(tlb->mm, 0); in ia64_tlb_flush_mmu_tlbonly() 132 ia64_tlb_flush_mmu_free(struct mmu_gather *tlb) in ia64_tlb_flush_mmu_free() argument 138 nr = tlb->nr; in ia64_tlb_flush_mmu_free() 140 tlb->nr = 0; in ia64_tlb_flush_mmu_free() 141 tlb->start_addr = ~0UL; in ia64_tlb_flush_mmu_free() 143 free_page_and_swap_cache(tlb->pages[i]); in ia64_tlb_flush_mmu_free() [all …]
|
/Linux-v4.19/arch/um/include/asm/ |
D | tlb.h | 11 #define tlb_start_vma(tlb, vma) do { } while (0) argument 12 #define tlb_end_vma(tlb, vma) do { } while (0) argument 13 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument 26 static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, in __tlb_remove_tlb_entry() argument 29 if (tlb->start > address) in __tlb_remove_tlb_entry() 30 tlb->start = address; in __tlb_remove_tlb_entry() 31 if (tlb->end < address + PAGE_SIZE) in __tlb_remove_tlb_entry() 32 tlb->end = address + PAGE_SIZE; in __tlb_remove_tlb_entry() 35 static inline void init_tlb_gather(struct mmu_gather *tlb) in init_tlb_gather() argument 37 tlb->need_flush = 0; in init_tlb_gather() [all …]
|
/Linux-v4.19/include/asm-generic/ |
D | tlb.h | 61 extern void tlb_table_flush(struct mmu_gather *tlb); 62 extern void tlb_remove_table(struct mmu_gather *tlb, void *table); 116 void arch_tlb_gather_mmu(struct mmu_gather *tlb, 118 void tlb_flush_mmu(struct mmu_gather *tlb); 119 void arch_tlb_finish_mmu(struct mmu_gather *tlb, 121 extern bool __tlb_remove_page_size(struct mmu_gather *tlb, struct page *page, 124 static inline void __tlb_adjust_range(struct mmu_gather *tlb, in __tlb_adjust_range() argument 128 tlb->start = min(tlb->start, address); in __tlb_adjust_range() 129 tlb->end = max(tlb->end, address + range_size); in __tlb_adjust_range() 132 static inline void __tlb_reset_range(struct mmu_gather *tlb) in __tlb_reset_range() argument [all …]
|
/Linux-v4.19/arch/sh/include/asm/ |
D | tlb.h | 28 static inline void init_tlb_gather(struct mmu_gather *tlb) in init_tlb_gather() argument 30 tlb->start = TASK_SIZE; in init_tlb_gather() 31 tlb->end = 0; in init_tlb_gather() 33 if (tlb->fullmm) { in init_tlb_gather() 34 tlb->start = 0; in init_tlb_gather() 35 tlb->end = TASK_SIZE; in init_tlb_gather() 40 arch_tlb_gather_mmu(struct mmu_gather *tlb, struct mm_struct *mm, in arch_tlb_gather_mmu() argument 43 tlb->mm = mm; in arch_tlb_gather_mmu() 44 tlb->start = start; in arch_tlb_gather_mmu() 45 tlb->end = end; in arch_tlb_gather_mmu() [all …]
|
D | tlb_64.h | 28 #define for_each_dtlb_entry(tlb) \ argument 29 for (tlb = cpu_data->dtlb.first; \ 30 tlb <= cpu_data->dtlb.last; \ 31 tlb += cpu_data->dtlb.step) 38 #define for_each_itlb_entry(tlb) \ argument 39 for (tlb = cpu_data->itlb.first; \ 40 tlb <= cpu_data->itlb.last; \ 41 tlb += cpu_data->itlb.step)
|
/Linux-v4.19/arch/s390/include/asm/ |
D | tlb.h | 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() [all …]
|
/Linux-v4.19/arch/arm64/include/asm/ |
D | tlb.h | 27 #define tlb_remove_entry(tlb, entry) tlb_remove_table(tlb, entry) argument 33 #define tlb_remove_entry(tlb, entry) tlb_remove_page(tlb, entry) argument 36 static void tlb_flush(struct mmu_gather *tlb); 40 static inline void tlb_flush(struct mmu_gather *tlb) in tlb_flush() argument 42 struct vm_area_struct vma = TLB_FLUSH_VMA(tlb->mm, 0); in tlb_flush() 48 if (tlb->fullmm) in tlb_flush() 56 __flush_tlb_range(&vma, tlb->start, tlb->end, true); in tlb_flush() 59 static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, in __pte_free_tlb() argument 62 __flush_tlb_pgtable(tlb->mm, addr); in __pte_free_tlb() 64 tlb_remove_entry(tlb, pte); in __pte_free_tlb() [all …]
|
/Linux-v4.19/arch/sh/mm/ |
D | tlbflush_64.c | 34 unsigned long tlb; in local_flush_tlb_one() local 43 for_each_itlb_entry(tlb) { in local_flush_tlb_one() 46 : "r" (tlb) ); in local_flush_tlb_one() 49 __flush_tlb_slot(tlb); in local_flush_tlb_one() 54 for_each_dtlb_entry(tlb) { in local_flush_tlb_one() 57 : "r" (tlb) ); in local_flush_tlb_one() 60 __flush_tlb_slot(tlb); in local_flush_tlb_one() 84 unsigned long tlb; in local_flush_tlb_range() local 100 for_each_itlb_entry(tlb) { in local_flush_tlb_range() 103 : "r" (tlb) ); in local_flush_tlb_range() [all …]
|
D | Makefile | 31 debugfs-$(CONFIG_CPU_SH4) += tlb-debugfs.o 32 tlb-$(CONFIG_CPU_SH3) := tlb-sh3.o 33 tlb-$(CONFIG_CPU_SH4) := tlb-sh4.o tlb-urb.o 34 tlb-$(CONFIG_CPU_SH5) := tlb-sh5.o 35 tlb-$(CONFIG_CPU_HAS_PTEAEX) := tlb-pteaex.o tlb-urb.o 36 obj-y += $(tlb-y)
|
/Linux-v4.19/arch/parisc/include/asm/ |
D | tlb.h | 5 #define tlb_flush(tlb) \ argument 6 do { if ((tlb)->fullmm) \ 7 flush_tlb_mm((tlb)->mm);\ 10 #define tlb_start_vma(tlb, vma) \ argument 11 do { if (!(tlb)->fullmm) \ 15 #define tlb_end_vma(tlb, vma) \ argument 16 do { if (!(tlb)->fullmm) \ 20 #define __tlb_remove_tlb_entry(tlb, pte, address) \ argument 25 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tlb)->mm, pmd) argument 26 #define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte) argument
|
/Linux-v4.19/arch/xtensa/include/asm/ |
D | tlb.h | 21 # define tlb_start_vma(tlb,vma) do { } while (0) argument 22 # define tlb_end_vma(tlb,vma) do { } while (0) argument 26 # define tlb_start_vma(tlb, vma) \ argument 28 if (!tlb->fullmm) \ 32 # define tlb_end_vma(tlb, vma) \ argument 34 if (!tlb->fullmm) \ 40 #define __tlb_remove_tlb_entry(tlb,pte,addr) do { } while (0) argument 41 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument 45 #define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte) argument
|
/Linux-v4.19/arch/x86/include/asm/ |
D | tlb.h | 5 #define tlb_start_vma(tlb, vma) do { } while (0) argument 6 #define tlb_end_vma(tlb, vma) do { } while (0) argument 7 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument 9 #define tlb_flush(tlb) \ argument 11 if (!tlb->fullmm && !tlb->need_flush_all) \ 12 flush_tlb_mm_range(tlb->mm, tlb->start, tlb->end, 0UL); \ 14 flush_tlb_mm_range(tlb->mm, 0UL, TLB_FLUSH_ALL, 0UL); \
|
D | pgalloc.h | 68 extern void ___pte_free_tlb(struct mmu_gather *tlb, struct page *pte); 70 static inline void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte, in __pte_free_tlb() argument 73 ___pte_free_tlb(tlb, pte); in __pte_free_tlb() 119 extern void ___pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd); 121 static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd, in __pmd_free_tlb() argument 124 ___pmd_free_tlb(tlb, pmd); in __pmd_free_tlb() 159 extern void ___pud_free_tlb(struct mmu_gather *tlb, pud_t *pud); 161 static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pud, in __pud_free_tlb() argument 164 ___pud_free_tlb(tlb, pud); in __pud_free_tlb() 194 extern void ___p4d_free_tlb(struct mmu_gather *tlb, p4d_t *p4d); [all …]
|
/Linux-v4.19/arch/nds32/include/asm/ |
D | tlb.h | 7 #define tlb_start_vma(tlb,vma) \ argument 9 if (!tlb->fullmm) \ 13 #define tlb_end_vma(tlb,vma) \ argument 15 if(!tlb->fullmm) \ 19 #define __tlb_remove_tlb_entry(tlb, pte, addr) do { } while (0) argument 21 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument 25 #define __pte_free_tlb(tlb, pte, addr) pte_free((tlb)->mm, pte) argument 26 #define __pmd_free_tlb(tlb, pmd, addr) pmd_free((tln)->mm, pmd) argument
|
/Linux-v4.19/arch/powerpc/include/asm/ |
D | tlb.h | 27 #define tlb_start_vma(tlb, vma) do { } while (0) argument 28 #define tlb_end_vma(tlb, vma) do { } while (0) argument 32 extern void tlb_flush(struct mmu_gather *tlb); 40 static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, in __tlb_remove_tlb_entry() argument 45 flush_hash_entry(tlb->mm, ptep, address); in __tlb_remove_tlb_entry() 49 static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb, in tlb_remove_check_page_size_change() argument 52 if (!tlb->page_size) in tlb_remove_check_page_size_change() 53 tlb->page_size = page_size; in tlb_remove_check_page_size_change() 54 else if (tlb->page_size != page_size) { in tlb_remove_check_page_size_change() 55 if (!tlb->fullmm) in tlb_remove_check_page_size_change() [all …]
|
/Linux-v4.19/arch/alpha/include/asm/ |
D | tlb.h | 5 #define tlb_start_vma(tlb, vma) do { } while (0) argument 6 #define tlb_end_vma(tlb, vma) do { } while (0) argument 7 #define __tlb_remove_tlb_entry(tlb, pte, addr) do { } while (0) argument 9 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument 13 #define __pte_free_tlb(tlb, pte, address) pte_free((tlb)->mm, pte) argument 14 #define __pmd_free_tlb(tlb, pmd, address) pmd_free((tlb)->mm, pmd) argument
|
/Linux-v4.19/arch/arc/include/asm/ |
D | tlb.h | 12 #define tlb_flush(tlb) \ argument 14 if (tlb->fullmm) \ 15 flush_tlb_mm((tlb)->mm); \ 27 #define tlb_start_vma(tlb, vma) argument 29 #define tlb_start_vma(tlb, vma) \ argument 31 if (!tlb->fullmm) \ 36 #define tlb_end_vma(tlb, vma) \ argument 38 if (!tlb->fullmm) \ 42 #define __tlb_remove_tlb_entry(tlb, ptep, address) argument
|
/Linux-v4.19/arch/unicore32/include/asm/ |
D | tlb.h | 15 #define tlb_start_vma(tlb, vma) do { } while (0) argument 16 #define tlb_end_vma(tlb, vma) do { } while (0) argument 17 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument 18 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument 20 #define __pte_free_tlb(tlb, pte, addr) \ argument 23 tlb_remove_page((tlb), (pte)); \
|
/Linux-v4.19/arch/nios2/include/asm/ |
D | tlb.h | 14 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument 22 #define tlb_start_vma(tlb, vma) \ argument 24 if (!tlb->fullmm) \ 28 #define tlb_end_vma(tlb, vma) do { } while (0) argument 29 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument
|
/Linux-v4.19/arch/sparc/include/asm/ |
D | pgalloc_64.h | 83 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, bool is_page) in pgtable_free_tlb() argument 88 tlb_remove_table(tlb, (void *)pgf); in pgtable_free_tlb() 101 static inline void pgtable_free_tlb(struct mmu_gather *tlb, void *table, bool is_page) in pgtable_free_tlb() argument 107 static inline void __pte_free_tlb(struct mmu_gather *tlb, pte_t *pte, in __pte_free_tlb() argument 110 pgtable_free_tlb(tlb, pte, true); in __pte_free_tlb() 113 #define __pmd_free_tlb(tlb, pmd, addr) \ argument 114 pgtable_free_tlb(tlb, pmd, false) 116 #define __pud_free_tlb(tlb, pud, addr) \ argument 117 pgtable_free_tlb(tlb, pud, false)
|
/Linux-v4.19/arch/mips/include/asm/ |
D | tlb.h | 12 #define tlb_start_vma(tlb, vma) \ argument 14 if (!tlb->fullmm) \ 17 #define tlb_end_vma(tlb, vma) do { } while (0) argument 18 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument 23 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument
|
/Linux-v4.19/arch/openrisc/include/asm/ |
D | tlb.h | 26 #define tlb_start_vma(tlb, vma) do { } while (0) argument 27 #define tlb_end_vma(tlb, vma) do { } while (0) argument 28 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument 30 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument
|
/Linux-v4.19/arch/hexagon/include/asm/ |
D | tlb.h | 28 #define tlb_start_vma(tlb, vma) do { } while (0) argument 29 #define tlb_end_vma(tlb, vma) do { } while (0) argument 30 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument 35 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument
|
/Linux-v4.19/arch/m68k/include/asm/ |
D | tlb.h | 9 #define tlb_start_vma(tlb, vma) do { } while (0) argument 10 #define tlb_end_vma(tlb, vma) do { } while (0) argument 11 #define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0) argument 17 #define tlb_flush(tlb) flush_tlb_mm((tlb)->mm) argument
|