diff --git a/[refs] b/[refs] index 3235ca3cd723..7aa09c8ee090 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eae0c9dfb534cb3449888b9601228efa6480fdb5 +refs/heads/master: ffd44db5f02af32bcc25a8eb5981bf02a141cdab diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index ad37776cc39b..43e61fa04dc7 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -6159,22 +6159,14 @@ __setscheduler(struct rq *rq, struct task_struct *p, int policy, int prio) BUG_ON(p->se.on_rq); p->policy = policy; - switch (p->policy) { - case SCHED_NORMAL: - case SCHED_BATCH: - case SCHED_IDLE: - p->sched_class = &fair_sched_class; - break; - case SCHED_FIFO: - case SCHED_RR: - p->sched_class = &rt_sched_class; - break; - } - p->rt_priority = prio; p->normal_prio = normal_prio(p); /* we are holding p->pi_lock already */ p->prio = rt_mutex_getprio(p); + if (rt_prio(p->prio)) + p->sched_class = &rt_sched_class; + else + p->sched_class = &fair_sched_class; set_load_weight(p); }