summaryrefslogtreecommitdiff
path: root/arch/mn10300/mm/pgtable.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mn10300/mm/pgtable.c')
-rw-r--r--arch/mn10300/mm/pgtable.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/mn10300/mm/pgtable.c b/arch/mn10300/mm/pgtable.c
index bd9ada693f95..e77a7c728081 100644
--- a/arch/mn10300/mm/pgtable.c
+++ b/arch/mn10300/mm/pgtable.c
@@ -78,8 +78,13 @@ struct page *pte_alloc_one(struct mm_struct *mm, unsigned long address)
#else
pte = alloc_pages(GFP_KERNEL|__GFP_REPEAT, 0);
#endif
- if (pte)
- clear_highpage(pte);
+ if (!pte)
+ return NULL;
+ clear_highpage(pte);
+ if (!pgtable_page_ctor(pte)) {
+ __free_page(pte);
+ return NULL;
+ }
return pte;
}