diff options
Diffstat (limited to 'mm/pgtable-generic.c')
-rw-r--r-- | mm/pgtable-generic.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c index d030548047e2..0369f5b3ba1b 100644 --- a/mm/pgtable-generic.c +++ b/mm/pgtable-generic.c | |||
@@ -92,32 +92,29 @@ pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long address, | |||
92 | #endif | 92 | #endif |
93 | 93 | ||
94 | #ifndef __HAVE_ARCH_PMDP_CLEAR_FLUSH | 94 | #ifndef __HAVE_ARCH_PMDP_CLEAR_FLUSH |
95 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||
95 | pmd_t pmdp_clear_flush(struct vm_area_struct *vma, unsigned long address, | 96 | pmd_t pmdp_clear_flush(struct vm_area_struct *vma, unsigned long address, |
96 | pmd_t *pmdp) | 97 | pmd_t *pmdp) |
97 | { | 98 | { |
98 | pmd_t pmd; | 99 | pmd_t pmd; |
99 | #ifndef CONFIG_TRANSPARENT_HUGEPAGE | ||
100 | BUG(); | ||
101 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ | ||
102 | VM_BUG_ON(address & ~HPAGE_PMD_MASK); | 100 | VM_BUG_ON(address & ~HPAGE_PMD_MASK); |
103 | pmd = pmdp_get_and_clear(vma->vm_mm, address, pmdp); | 101 | pmd = pmdp_get_and_clear(vma->vm_mm, address, pmdp); |
104 | flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE); | 102 | flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE); |
105 | return pmd; | 103 | return pmd; |
106 | } | 104 | } |
105 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ | ||
107 | #endif | 106 | #endif |
108 | 107 | ||
109 | #ifndef __HAVE_ARCH_PMDP_SPLITTING_FLUSH | 108 | #ifndef __HAVE_ARCH_PMDP_SPLITTING_FLUSH |
109 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||
110 | pmd_t pmdp_splitting_flush(struct vm_area_struct *vma, unsigned long address, | 110 | pmd_t pmdp_splitting_flush(struct vm_area_struct *vma, unsigned long address, |
111 | pmd_t *pmdp) | 111 | pmd_t *pmdp) |
112 | { | 112 | { |
113 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | ||
114 | pmd_t pmd = pmd_mksplitting(*pmdp); | 113 | pmd_t pmd = pmd_mksplitting(*pmdp); |
115 | VM_BUG_ON(address & ~HPAGE_PMD_MASK); | 114 | VM_BUG_ON(address & ~HPAGE_PMD_MASK); |
116 | set_pmd_at(vma->vm_mm, address, pmdp, pmd); | 115 | set_pmd_at(vma->vm_mm, address, pmdp, pmd); |
117 | /* tlb flush only to serialize against gup-fast */ | 116 | /* tlb flush only to serialize against gup-fast */ |
118 | flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE); | 117 | flush_tlb_range(vma, address, address + HPAGE_PMD_SIZE); |
119 | #else /* CONFIG_TRANSPARENT_HUGEPAGE */ | ||
120 | BUG(); | ||
121 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ | ||
122 | } | 118 | } |
119 | #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ | ||
123 | #endif | 120 | #endif |