diff --git a/kernel/sched/core.c b/kernel/sched/core.c index e41cbae19a83d4668ef8f1b5d84d43e3fb5f3a79..a4bb12447f0de3594c8c210e0627fa9a166746d6 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -5552,8 +5552,8 @@ static int __sched_setscheduler(struct task_struct *p, * isolation will be invalid, so return -EINVAL in this case. */ if (unlikely(task_group(p)->qos_level == -1 && !idle_policy(policy))) { - task_rq_unlock(rq, p, &rf); - return -EINVAL; + retval = -EINVAL; + goto unlock; } #endif