aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/microblaze/include/asm/pgalloc.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/arch/microblaze/include/asm/pgalloc.h b/arch/microblaze/include/asm/pgalloc.h
index ebd35792482c..7fdf7fabc7d7 100644
--- a/arch/microblaze/include/asm/pgalloc.h
+++ b/arch/microblaze/include/asm/pgalloc.h
@@ -122,8 +122,13 @@ static inline struct page *pte_alloc_one(struct mm_struct *mm,
122#endif 122#endif
123 123
124 ptepage = alloc_pages(flags, 0); 124 ptepage = alloc_pages(flags, 0);
125 if (ptepage) 125 if (!ptepage)
126 clear_highpage(ptepage); 126 return NULL;
127 clear_highpage(ptepage);
128 if (!pgtable_page_ctor(ptepage)) {
129 __free_page(ptepage);
130 return NULL;
131 }
127 return ptepage; 132 return ptepage;
128} 133}
129 134
@@ -158,8 +163,9 @@ extern inline void pte_free_slow(struct page *ptepage)
158 __free_page(ptepage); 163 __free_page(ptepage);
159} 164}
160 165
161extern inline void pte_free(struct mm_struct *mm, struct page *ptepage) 166static inline void pte_free(struct mm_struct *mm, struct page *ptepage)
162{ 167{
168 pgtable_page_dtor(ptepage);
163 __free_page(ptepage); 169 __free_page(ptepage);
164} 170}
165 171