diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sched_fair.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 16ee398d8a4e..c62ebae65cf0 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
| @@ -765,8 +765,12 @@ static void update_cfs_load(struct cfs_rq *cfs_rq, int global_update) | |||
| 765 | static void reweight_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, | 765 | static void reweight_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, |
| 766 | unsigned long weight) | 766 | unsigned long weight) |
| 767 | { | 767 | { |
| 768 | if (se->on_rq) | 768 | if (se->on_rq) { |
| 769 | /* commit outstanding execution time */ | ||
| 770 | if (cfs_rq->curr == se) | ||
| 771 | update_curr(cfs_rq); | ||
| 769 | account_entity_dequeue(cfs_rq, se); | 772 | account_entity_dequeue(cfs_rq, se); |
| 773 | } | ||
| 770 | 774 | ||
| 771 | update_load_set(&se->load, weight); | 775 | update_load_set(&se->load, weight); |
| 772 | 776 | ||
