diff options
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index cdcedf66161..2bc2ac63f41 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1769,7 +1769,7 @@ gfp_to_alloc_flags(gfp_t gfp_mask)  		 * See also cpuset_zone_allowed() comment in kernel/cpuset.c.  		 */  		alloc_flags &= ~ALLOC_CPUSET; -	} else if (unlikely(rt_task(p))) +	} else if (unlikely(rt_task(p)) && !in_interrupt())  		alloc_flags |= ALLOC_HARDER;  	if (likely(!(gfp_mask & __GFP_NOMEMALLOC))) { @@ -1817,9 +1817,9 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,  	if (NUMA_BUILD && (gfp_mask & GFP_THISNODE) == GFP_THISNODE)  		goto nopage; +restart:  	wake_all_kswapd(order, zonelist, high_zoneidx); -restart:  	/*  	 * OK, we're below the kswapd watermark and have kicked background  	 * reclaim. Now things get more complex, so set up alloc_flags according  |