diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 5161000eec0a6d42de753ce034b26ee0529c7f86..2ba167b9d187ee81458e7c84e5cc3f6e1a5042cf 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -549,7 +549,8 @@ static int se_is_idle(struct sched_entity *se) int task_is_idle(struct task_struct *p) { - return task_has_idle_policy(p) || cfs_rq_is_idle(group_cfs_rq(&p->se)); + return (p->sched_class == &fair_sched_class) && + (task_has_idle_policy(p) || cfs_rq_is_idle(cfs_rq_of(&p->se))); } static __always_inline