Merge remote-tracking branch 'spi/fix/core' into spi-linus
[linux-drm-fsl-dcu.git] / arch / arm / include / asm / pgalloc.h
index 943504f53f579e58c878165c595d5a110dae00ed..78a779361682adedae9acd430998c227842425bb 100644 (file)
@@ -102,12 +102,14 @@ pte_alloc_one(struct mm_struct *mm, unsigned long addr)
 #else
        pte = alloc_pages(PGALLOC_GFP, 0);
 #endif
-       if (pte) {
-               if (!PageHighMem(pte))
-                       clean_pte_table(page_address(pte));
-               pgtable_page_ctor(pte);
+       if (!pte)
+               return NULL;
+       if (!PageHighMem(pte))
+               clean_pte_table(page_address(pte));
+       if (!pgtable_page_ctor(pte)) {
+               __free_page(pte);
+               return NULL;
        }
-
        return pte;
 }