diff options
Diffstat (limited to 'arch/ppc/mm/pgtable.c')
-rw-r--r-- | arch/ppc/mm/pgtable.c | 9 |
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 | ||
98 | struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address) | 98 | pgtable_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 | ||
122 | void pte_free(struct mm_struct *mm, struct page *ptepage) | 124 | void 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 | ||