diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 5d011ef4c0df37ee859ac3d3871fcabd2164316a..2cb4e77779985ef6fca4891a6fe9fb323f291675 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -4340,9 +4340,7 @@ static int __sched_setscheduler(struct task_struct *p, int policy, */ if (unlikely(policy == p->policy && (!rt_policy(policy) || param->sched_priority == p->rt_priority))) { - - __task_rq_unlock(rq); - raw_spin_unlock_irqrestore(&p->pi_lock, flags); + task_rq_unlock(rq, p, &flags); return 0; }