diff options
Diffstat (limited to 'arch/x86/mm/pgtable_32.c')
-rw-r--r-- | arch/x86/mm/pgtable_32.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c index 6c1914622a88..73aba7125203 100644 --- a/arch/x86/mm/pgtable_32.c +++ b/arch/x86/mm/pgtable_32.c | |||
@@ -183,7 +183,7 @@ pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long address) | |||
183 | return (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); | 183 | return (pte_t *)__get_free_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO); |
184 | } | 184 | } |
185 | 185 | ||
186 | struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) | 186 | pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address) |
187 | { | 187 | { |
188 | struct page *pte; | 188 | struct page *pte; |
189 | 189 | ||
@@ -192,6 +192,8 @@ struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) | |||
192 | #else | 192 | #else |
193 | pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); | 193 | pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO, 0); |
194 | #endif | 194 | #endif |
195 | if (pte) | ||
196 | pgtable_page_ctor(pte); | ||
195 | return pte; | 197 | return pte; |
196 | } | 198 | } |
197 | 199 | ||
@@ -365,6 +367,7 @@ void check_pgt_cache(void) | |||
365 | 367 | ||
366 | void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) | 368 | void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) |
367 | { | 369 | { |
370 | pgtable_page_dtor(pte); | ||
368 | paravirt_release_pt(page_to_pfn(pte)); | 371 | paravirt_release_pt(page_to_pfn(pte)); |
369 | tlb_remove_page(tlb, pte); | 372 | tlb_remove_page(tlb, pte); |
370 | } | 373 | } |