aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/pgtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/mm/pgtable.c')
-rw-r--r--arch/x86/mm/pgtable.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 0d2866b8f425..1d44d6dd4c9f 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -24,14 +24,14 @@ pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
24void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte) 24void __pte_free_tlb(struct mmu_gather *tlb, struct page *pte)
25{ 25{
26 pgtable_page_dtor(pte); 26 pgtable_page_dtor(pte);
27 paravirt_release_pt(page_to_pfn(pte)); 27 paravirt_release_pte(page_to_pfn(pte));
28 tlb_remove_page(tlb, pte); 28 tlb_remove_page(tlb, pte);
29} 29}
30 30
31#if PAGETABLE_LEVELS > 2 31#if PAGETABLE_LEVELS > 2
32void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd) 32void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd)
33{ 33{
34 paravirt_release_pd(__pa(pmd) >> PAGE_SHIFT); 34 paravirt_release_pmd(__pa(pmd) >> PAGE_SHIFT);
35 tlb_remove_page(tlb, virt_to_page(pmd)); 35 tlb_remove_page(tlb, virt_to_page(pmd));
36} 36}
37 37
@@ -122,10 +122,10 @@ static void pgd_ctor(void *p)
122 clone_pgd_range(pgd + USER_PTRS_PER_PGD, 122 clone_pgd_range(pgd + USER_PTRS_PER_PGD,
123 swapper_pg_dir + USER_PTRS_PER_PGD, 123 swapper_pg_dir + USER_PTRS_PER_PGD,
124 KERNEL_PGD_PTRS); 124 KERNEL_PGD_PTRS);
125 paravirt_alloc_pd_clone(__pa(pgd) >> PAGE_SHIFT, 125 paravirt_alloc_pmd_clone(__pa(pgd) >> PAGE_SHIFT,
126 __pa(swapper_pg_dir) >> PAGE_SHIFT, 126 __pa(swapper_pg_dir) >> PAGE_SHIFT,
127 USER_PTRS_PER_PGD, 127 USER_PTRS_PER_PGD,
128 KERNEL_PGD_PTRS); 128 KERNEL_PGD_PTRS);
129 } 129 }
130 130
131 /* list required to sync kernel mapping updates */ 131 /* list required to sync kernel mapping updates */
@@ -166,7 +166,7 @@ static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
166 166
167 pgdp[i] = native_make_pgd(0); 167 pgdp[i] = native_make_pgd(0);
168 168
169 paravirt_release_pd(pgd_val(pgd) >> PAGE_SHIFT); 169 paravirt_release_pmd(pgd_val(pgd) >> PAGE_SHIFT);
170 pmd_free(mm, pmd); 170 pmd_free(mm, pmd);
171 } 171 }
172 } 172 }
@@ -211,7 +211,7 @@ static int pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd)
211 211
212void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd) 212void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
213{ 213{
214 paravirt_alloc_pd(mm, __pa(pmd) >> PAGE_SHIFT); 214 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
215 215
216 /* Note: almost everything apart from _PAGE_PRESENT is 216 /* Note: almost everything apart from _PAGE_PRESENT is
217 reserved at the pmd (PDPT) level. */ 217 reserved at the pmd (PDPT) level. */
@@ -242,7 +242,7 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
242{ 242{
243 pgd_t *pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO); 243 pgd_t *pgd = (pgd_t *)__get_free_page(GFP_KERNEL | __GFP_ZERO);
244 244
245 /* so that alloc_pd can use it */ 245 /* so that alloc_pmd can use it */
246 mm->pgd = pgd; 246 mm->pgd = pgd;
247 if (pgd) 247 if (pgd)
248 pgd_ctor(pgd); 248 pgd_ctor(pgd);