diff --git a/mm/memory.c b/mm/memory.c index 4425b605933900b7f42856bfcd3ad05a46bd0959..04004834e985fcd95b6b468976359ea1de21ed01 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -3133,6 +3133,8 @@ static int do_fault_around(struct fault_env *fe, pgoff_t start_pgoff) if (pmd_none(*fe->pmd)) { fe->prealloc_pte = pte_alloc_one(fe->vma->vm_mm, fe->address); + if (!fe->prealloc_pte) + goto out; smp_wmb(); /* See comment in __pte_alloc() */ }