aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/pgtable_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/mm/pgtable_32.c')
-rw-r--r--arch/x86/mm/pgtable_32.c5
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
186struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) 186pgtable_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
366void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) 368void __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}