diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 1afbb481b713..5e5e4a20a67f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -3792,7 +3792,8 @@ void rt_mutex_setprio(struct task_struct *p, int prio) if (dl_prio(prio)) { struct task_struct *pi_task = rt_mutex_get_top_task(p); if (!dl_prio(p->normal_prio) || - (pi_task && dl_entity_preempt(&pi_task->dl, &p->dl))) { + (pi_task && dl_prio(pi_task->prio) && + dl_entity_preempt(&pi_task->dl, &p->dl))) { p->dl.dl_boosted = 1; queue_flag |= ENQUEUE_REPLENISH; } else