|
@@ -817,7 +817,7 @@ static void set_load_weight(struct task_struct *p)
|
|
|
/*
|
|
|
* SCHED_IDLE tasks get minimal weight:
|
|
|
*/
|
|
|
- if (p->policy == SCHED_IDLE) {
|
|
|
+ if (idle_policy(p->policy)) {
|
|
|
load->weight = scale_load(WEIGHT_IDLEPRIO);
|
|
|
load->inv_weight = WMULT_IDLEPRIO;
|
|
|
return;
|
|
@@ -3733,10 +3733,7 @@ recheck:
|
|
|
} else {
|
|
|
reset_on_fork = !!(attr->sched_flags & SCHED_FLAG_RESET_ON_FORK);
|
|
|
|
|
|
- if (policy != SCHED_DEADLINE &&
|
|
|
- policy != SCHED_FIFO && policy != SCHED_RR &&
|
|
|
- policy != SCHED_NORMAL && policy != SCHED_BATCH &&
|
|
|
- policy != SCHED_IDLE)
|
|
|
+ if (!valid_policy(policy))
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -3792,7 +3789,7 @@ recheck:
|
|
|
* Treat SCHED_IDLE as nice 20. Only allow a switch to
|
|
|
* SCHED_NORMAL if the RLIMIT_NICE would normally permit it.
|
|
|
*/
|
|
|
- if (p->policy == SCHED_IDLE && policy != SCHED_IDLE) {
|
|
|
+ if (idle_policy(p->policy) && !idle_policy(policy)) {
|
|
|
if (!can_nice(p, task_nice(p)))
|
|
|
return -EPERM;
|
|
|
}
|