aboutsummaryrefslogtreecommitdiffstats
path: root/mm/pgtable-generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/pgtable-generic.c')
-rw-r--r--mm/pgtable-generic.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c
index 71c5f9109f2a..4ed5908c65b0 100644
--- a/mm/pgtable-generic.c
+++ b/mm/pgtable-generic.c
@@ -123,6 +123,20 @@ pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address,
123 flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE); 123 flush_pmd_tlb_range(vma, address, address + HPAGE_PMD_SIZE);
124 return pmd; 124 return pmd;
125} 125}
126
127#ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
128pud_t pudp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address,
129 pud_t *pudp)
130{
131 pud_t pud;
132
133 VM_BUG_ON(address & ~HPAGE_PUD_MASK);
134 VM_BUG_ON(!pud_trans_huge(*pudp) && !pud_devmap(*pudp));
135 pud = pudp_huge_get_and_clear(vma->vm_mm, address, pudp);
136 flush_pud_tlb_range(vma, address, address + HPAGE_PUD_SIZE);
137 return pud;
138}
139#endif
126#endif 140#endif
127 141
128#ifndef __HAVE_ARCH_PGTABLE_DEPOSIT 142#ifndef __HAVE_ARCH_PGTABLE_DEPOSIT