diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 1c78e2f29901325e42cdd5112ed41e694120018a..ccd2a060c2dfe7f2f2dfb386990998453486d02d 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5099,6 +5099,8 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) if (!overrun) break; + idle = do_sched_cfs_period_timer(cfs_b, overrun, flags); + if (++count > 3) { u64 new, old = ktime_to_ns(cfs_b->period); @@ -5128,8 +5130,6 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) /* reset count so we don't come right back in here */ count = 0; } - - idle = do_sched_cfs_period_timer(cfs_b, overrun, flags); } if (idle) cfs_b->period_active = 0;