Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next
[cascardo/linux.git] / arch / sparc / mm / init_64.c
index bd6430d..6b64379 100644 (file)
@@ -2567,12 +2567,13 @@ pgtable_t pte_alloc_one(struct mm_struct *mm,
                                       __GFP_REPEAT | __GFP_ZERO);
        pte_t *pte = NULL;
 
-       if (page) {
-               pgtable_page_ctor(page);
-               pte = (pte_t *) page_address(page);
+       if (!page)
+               return NULL;
+       if (!pgtable_page_ctor(page)) {
+               free_hot_cold_page(page, 0);
+               return NULL;
        }
-
-       return pte;
+       return (pte_t *) page_address(page);
 }
 
 void pte_free_kernel(struct mm_struct *mm, pte_t *pte)