tile: handle pgtable_page_ctor() fail
[platform/adaptation/renesas_rcar/renesas_kernel.git] / arch / tile / mm / pgtable.c
index 4fd9ec0..5e86eac 100644 (file)
@@ -241,6 +241,11 @@ struct page *pgtable_alloc_one(struct mm_struct *mm, unsigned long address,
        if (p == NULL)
                return NULL;
 
+       if (!pgtable_page_ctor(p)) {
+               __free_pages(p, L2_USER_PGTABLE_ORDER);
+               return NULL;
+       }
+
        /*
         * Make every page have a page_count() of one, not just the first.
         * We don't use __GFP_COMP since it doesn't look like it works
@@ -251,7 +256,6 @@ struct page *pgtable_alloc_one(struct mm_struct *mm, unsigned long address,
                inc_zone_page_state(p+i, NR_PAGETABLE);
        }
 
-       pgtable_page_ctor(p);
        return p;
 }