|
@@ -48,6 +48,7 @@ static inline void tlb_flush(struct mmu_gather *tlb)
|
|
|
static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
|
|
|
unsigned long addr)
|
|
|
{
|
|
|
+ __flush_tlb_pgtable(tlb->mm, addr);
|
|
|
pgtable_page_dtor(pte);
|
|
|
tlb_remove_entry(tlb, pte);
|
|
|
}
|
|
@@ -56,6 +57,7 @@ static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
|
|
|
static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp,
|
|
|
unsigned long addr)
|
|
|
{
|
|
|
+ __flush_tlb_pgtable(tlb->mm, addr);
|
|
|
tlb_remove_entry(tlb, virt_to_page(pmdp));
|
|
|
}
|
|
|
#endif
|
|
@@ -64,6 +66,7 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmdp,
|
|
|
static inline void __pud_free_tlb(struct mmu_gather *tlb, pud_t *pudp,
|
|
|
unsigned long addr)
|
|
|
{
|
|
|
+ __flush_tlb_pgtable(tlb->mm, addr);
|
|
|
tlb_remove_entry(tlb, virt_to_page(pudp));
|
|
|
}
|
|
|
#endif
|