diff --git a/mm/vmscan.c b/mm/vmscan.c
index 4f49535d4cd31f998fd58f456eb7ff16ccbf82f9..04c49fe781fe7f7f9ba125e4078e18c763b99e1b 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2326,7 +2326,7 @@ static bool sleeping_prematurely(pg_data_t *pgdat, int order, long remaining,
 		return true;
 
 	/* Check the watermark levels */
-	for (i = 0; i < pgdat->nr_zones; i++) {
+	for (i = 0; i <= classzone_idx; i++) {
 		struct zone *zone = pgdat->node_zones + i;
 
 		if (!populated_zone(zone))