sched/balancing: Fix 'local->avg_load > sds->avg_load' case in calculate_imbalance()
[platform/adaptation/renesas_rcar/renesas_kernel.git] / kernel / sched / fair.c
index 11cd136..0b99aae 100644 (file)
@@ -4896,7 +4896,8 @@ static inline void calculate_imbalance(struct lb_env *env, struct sd_lb_stats *s
         * max load less than avg load(as we skip the groups at or below
         * its cpu_power, while calculating max_load..)
         */
-       if (busiest->avg_load < sds->avg_load) {
+       if (busiest->avg_load <= sds->avg_load ||
+           local->avg_load >= sds->avg_load) {
                env->imbalance = 0;
                return fix_small_imbalance(env, sds);
        }