diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index f49db5d9c..19c7e09c0 100755
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -2124,8 +2124,11 @@ static int rto_next_cpu(struct root_domain *rd)
 
 		rd->rto_cpu = cpu;
 
-		if (cpu < nr_cpu_ids)
+		if (cpu < nr_cpu_ids) {
+			if (!has_pushable_tasks(cpu_rq(cpu)))
+				continue;
 			return cpu;
+		}
 
 		rd->rto_cpu = -1;