diff options
-rw-r--r-- | kernel/sched/core.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 771eb8762df4..9c2fcbf9a266 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -3442,8 +3442,13 @@ change: | |||
3442 | 3442 | ||
3443 | if (running) | 3443 | if (running) |
3444 | p->sched_class->set_curr_task(rq); | 3444 | p->sched_class->set_curr_task(rq); |
3445 | if (on_rq) | 3445 | if (on_rq) { |
3446 | enqueue_task(rq, p, 0); | 3446 | /* |
3447 | * We enqueue to tail when the priority of a task is | ||
3448 | * increased (user space view). | ||
3449 | */ | ||
3450 | enqueue_task(rq, p, oldprio <= p->prio ? ENQUEUE_HEAD : 0); | ||
3451 | } | ||
3447 | 3452 | ||
3448 | check_class_changed(rq, p, prev_class, oldprio); | 3453 | check_class_changed(rq, p, prev_class, oldprio); |
3449 | task_rq_unlock(rq, p, &flags); | 3454 | task_rq_unlock(rq, p, &flags); |