|
@@ -121,8 +121,12 @@ static inline pgtable_t
|
|
|
pte_alloc_one(struct mm_struct *mm, unsigned long address)
|
|
pte_alloc_one(struct mm_struct *mm, unsigned long address)
|
|
|
{
|
|
{
|
|
|
struct page *page = alloc_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
|
|
struct page *page = alloc_page(GFP_KERNEL|__GFP_REPEAT|__GFP_ZERO);
|
|
|
- if (page)
|
|
|
|
|
- pgtable_page_ctor(page);
|
|
|
|
|
|
|
+ if (!page)
|
|
|
|
|
+ return NULL;
|
|
|
|
|
+ if (!pgtable_page_ctor(page)) {
|
|
|
|
|
+ __free_page(page);
|
|
|
|
|
+ return NULL;
|
|
|
|
|
+ }
|
|
|
return page;
|
|
return page;
|
|
|
}
|
|
}
|
|
|
|
|
|