diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 72e61d3a9eb0..500f5db0de0b 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -7759,9 +7759,10 @@ static inline void init_sd_lb_stats(struct sd_lb_stats *sds) }; } -static unsigned long scale_rt_capacity(int cpu, unsigned long max) +static unsigned long scale_rt_capacity(struct sched_domain *sd, int cpu) { struct rq *rq = cpu_rq(cpu); + unsigned long max = arch_scale_cpu_capacity(cpu); unsigned long used, free; unsigned long irq; @@ -7783,15 +7784,10 @@ static unsigned long scale_rt_capacity(int cpu, unsigned long max) static void update_cpu_capacity(struct sched_domain *sd, int cpu) { - unsigned long capacity = arch_scale_cpu_capacity(cpu); + unsigned long capacity = scale_rt_capacity(sd, cpu); struct sched_group *sdg = sd->groups; - cpu_rq(cpu)->cpu_capacity_orig = capacity; - - capacity *= arch_scale_max_freq_capacity(sd, cpu); - capacity >>= SCHED_CAPACITY_SHIFT; - - capacity = scale_rt_capacity(cpu, capacity); + cpu_rq(cpu)->cpu_capacity_orig = arch_scale_cpu_capacity(cpu); if (!capacity) capacity = 1; diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index b734577b89bf..802b1f3405f2 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1942,15 +1942,6 @@ unsigned long arch_scale_freq_capacity(int cpu) } #endif -#ifndef arch_scale_max_freq_capacity -struct sched_domain; -static __always_inline -unsigned long arch_scale_max_freq_capacity(struct sched_domain *sd, int cpu) -{ - return SCHED_CAPACITY_SCALE; -} -#endif - #ifdef CONFIG_SMP #ifdef CONFIG_PREEMPT