diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 55cf0098d1ea19e31886c7a60ffcde6f2a901d4d..0bc8ae5a653aa824cac5720a2335ea3711e62ca2 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -43,7 +43,9 @@ static void sched_update_runtime(struct task_struct *task, ktime now)
 
 	task->runtime = ktime_sub(task->runtime, rt);
 	task->total   = ktime_add(task->total, rt);
-	task->state   = TASK_RUN;
+
+	if (task->state == TASK_BUSY)
+		task->state  = TASK_RUN;
 }
 
 /**