diff --git a/mm/vmscan.c b/mm/vmscan.c
index 46711f080f38..dafb9d91b604 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2653,6 +2653,8 @@ static int kswapd(void *p)
 			kswapd_try_to_sleep(pgdat, order);
 			order = pgdat->kswapd_max_order;
 			classzone_idx = pgdat->classzone_idx;
+			pgdat->kswapd_max_order = 0;
+			pgdat->classzone_idx = MAX_NR_ZONES - 1;
 		}
 
 		ret = try_to_freeze();