diff --git a/kernel/sched.c b/kernel/sched.c
index f04add905bdfa349724dd29ebc2db056800dc240..fdd26fffaa20fab9fe3632b9400ca5370bbcf978 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -2915,6 +2915,9 @@ static inline int wake_priority_sleeper(struct rq *rq)
 	int ret = 0;
 
 #ifdef CONFIG_SCHED_SMT
+	if (!rq->nr_running)
+		return 0;
+
 	spin_lock(&rq->lock);
 	/*
 	 * If an SMT sibling task has been put to sleep for priority