diff options
Diffstat (limited to 'arch/arm64/include/asm/tlb.h')
-rw-r--r-- | arch/arm64/include/asm/tlb.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/tlb.h b/arch/arm64/include/asm/tlb.h index 80e2c08900d6..62731ef9749a 100644 --- a/arch/arm64/include/asm/tlb.h +++ b/arch/arm64/include/asm/tlb.h | |||
@@ -91,7 +91,7 @@ static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte, | |||
91 | tlb_remove_page(tlb, pte); | 91 | tlb_remove_page(tlb, pte); |
92 | } | 92 | } |
93 | 93 | ||
94 | #ifndef CONFIG_ARM64_64K_PAGES | 94 | #if CONFIG_ARM64_PGTABLE_LEVELS > 2 |
95 | static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, | 95 | static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, |
96 | unsigned long addr) | 96 | unsigned long addr) |
97 | { | 97 | { |
@@ -100,6 +100,15 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp, | |||
100 | } | 100 | } |
101 | #endif | 101 | #endif |
102 | 102 | ||
103 | #if CONFIG_ARM64_PGTABLE_LEVELS > 3 | ||
104 | static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pudp, | ||
105 | unsigned long addr) | ||
106 | { | ||
107 | tlb_add_flush(tlb, addr); | ||
108 | tlb_remove_page(tlb, virt_to_page(pudp)); | ||
109 | } | ||
110 | #endif | ||
111 | |||
103 | static inline void __tlb_remove_pmd_tlb_entry(struct mmu_gather *tlb, pmd_t *pmdp, | 112 | static inline void __tlb_remove_pmd_tlb_entry(struct mmu_gather *tlb, pmd_t *pmdp, |
104 | unsigned long address) | 113 | unsigned long address) |
105 | { | 114 | { |