diff options
-rw-r--r-- | kernel/sched/fair.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 235cfa7ad8fc..280da893cd0f 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
@@ -7317,7 +7317,15 @@ static void switched_from_fair(struct rq *rq, struct task_struct *p) | |||
7317 | */ | 7317 | */ |
7318 | static void switched_to_fair(struct rq *rq, struct task_struct *p) | 7318 | static void switched_to_fair(struct rq *rq, struct task_struct *p) |
7319 | { | 7319 | { |
7320 | if (!p->se.on_rq) | 7320 | struct sched_entity *se = &p->se; |
7321 | #ifdef CONFIG_FAIR_GROUP_SCHED | ||
7322 | /* | ||
7323 | * Since the real-depth could have been changed (only FAIR | ||
7324 | * class maintain depth value), reset depth properly. | ||
7325 | */ | ||
7326 | se->depth = se->parent ? se->parent->depth + 1 : 0; | ||
7327 | #endif | ||
7328 | if (!se->on_rq) | ||
7321 | return; | 7329 | return; |
7322 | 7330 | ||
7323 | /* | 7331 | /* |