diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 0bd4d82ddfffb55494bb94d5ce6120f56416e07c..3da85b81dabb32608fa065f8086de64f725f5af8 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1350,6 +1350,10 @@ __alloc_pages(gfp_t gfp_mask, unsigned int order, if (page) goto got_pg; + /* The OOM killer will not help higher order allocs so fail */ + if (order > PAGE_ALLOC_COSTLY_ORDER) + goto nopage; + out_of_memory(zonelist, gfp_mask, order); goto restart; }