aboutsummaryrefslogtreecommitdiffstats
path: root/arch/microblaze
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>2013-11-14 17:31:21 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-11-14 19:32:16 -0500
commit8abe73465660f12dee03871f681175f4dae62e7f (patch)
tree03f77b00ad39d400cffa3deac8d97d7a12f1aa69 /arch/microblaze
parent390f44e2aa2ab83f08231d7d05f066dc3494490e (diff)
microblaze: add missing pgtable_page_ctor/dtor calls
It will fix NR_PAGETABLE accounting. It's also required if the arch is going ever support split ptl. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Michal Simek <monstr@monstr.eu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/microblaze')
-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