summaryrefslogtreecommitdiffstats
path: root/mm/page_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r--mm/page_alloc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 0f92e04b58db..a34d9fcf1339 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -3367,10 +3367,14 @@ static void wake_all_kswapds(unsigned int order, const struct alloc_context *ac)
3367{ 3367{
3368 struct zoneref *z; 3368 struct zoneref *z;
3369 struct zone *zone; 3369 struct zone *zone;
3370 pg_data_t *last_pgdat = NULL;
3370 3371
3371 for_each_zone_zonelist_nodemask(zone, z, ac->zonelist, 3372 for_each_zone_zonelist_nodemask(zone, z, ac->zonelist,
3372 ac->high_zoneidx, ac->nodemask) 3373 ac->high_zoneidx, ac->nodemask) {
3373 wakeup_kswapd(zone, order, ac_classzone_idx(ac)); 3374 if (last_pgdat != zone->zone_pgdat)
3375 wakeup_kswapd(zone, order, ac_classzone_idx(ac));
3376 last_pgdat = zone->zone_pgdat;
3377 }
3374} 3378}
3375 3379
3376static inline unsigned int 3380static inline unsigned int