|
@@ -378,6 +378,10 @@ static pte_t *__alloc_for_cache(struct mm_struct *mm, int kernel)
|
|
|
__GFP_REPEAT | __GFP_ZERO);
|
|
|
if (!page)
|
|
|
return NULL;
|
|
|
+ if (!kernel && !pgtable_page_ctor(page)) {
|
|
|
+ __free_page(page);
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
|
|
|
ret = page_address(page);
|
|
|
spin_lock(&mm->page_table_lock);
|
|
@@ -392,9 +396,6 @@ static pte_t *__alloc_for_cache(struct mm_struct *mm, int kernel)
|
|
|
}
|
|
|
spin_unlock(&mm->page_table_lock);
|
|
|
|
|
|
- if (!kernel)
|
|
|
- pgtable_page_ctor(page);
|
|
|
-
|
|
|
return (pte_t *)ret;
|
|
|
}
|
|
|
|