diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 6427653023aabfb501a2c34d3cc18f39b686c532..1a8c59571cb7303515c7b616f9572c4706ccebb6 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -2345,6 +2345,8 @@ static int __cpuinit process_zones(int cpu) return 0; bad: for_each_zone(dzone) { + if (!populated_zone(dzone)) + continue; if (dzone == zone) break; kfree(zone_pcp(dzone, cpu));