aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ppc/mm/pgtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ppc/mm/pgtable.c')
-rw-r--r--arch/ppc/mm/pgtable.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c
index 409fcaa4994a..03a79bff1271 100644
--- a/arch/ppc/mm/pgtable.c
+++ b/arch/ppc/mm/pgtable.c
@@ -95,7 +95,7 @@ __init_refok pte_t *pte_alloc_one_kernel(struct mm_struct *mm, unsigned long add
95 return pte; 95 return pte;
96} 96}
97 97
98struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) 98pgtable_t pte_alloc_one(struct mm_struct *mm, unsigned long address)
99{ 99{
100 struct page *ptepage; 100 struct page *ptepage;
101 101
@@ -106,8 +106,10 @@ struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
106#endif 106#endif
107 107
108 ptepage = alloc_pages(flags, 0); 108 ptepage = alloc_pages(flags, 0);
109 if (ptepage) 109 if (ptepage) {
110 clear_highpage(ptepage); 110 clear_highpage(ptepage);
111 pgtable_page_ctor(ptepage);
112 }
111 return ptepage; 113 return ptepage;
112} 114}
113 115
@@ -119,11 +121,12 @@ void pte_free_kernel(struct mm_struct *mm, pte_t *pte)
119 free_page((unsigned long)pte); 121 free_page((unsigned long)pte);
120} 122}
121 123
122void pte_free(struct mm_struct *mm, struct page *ptepage) 124void pte_free(struct mm_struct *mm, pgtable_t ptepage)
123{ 125{
124#ifdef CONFIG_SMP 126#ifdef CONFIG_SMP
125 hash_page_sync(); 127 hash_page_sync();
126#endif 128#endif
129 pgtable_page_dtor(ptepage);
127 __free_page(ptepage); 130 __free_page(ptepage);
128} 131}
129 132