|
@@ -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);
|
|
|
}
|
|
|
|