summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched/core.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 0ae0d5f71a51..76aa44c0bcfe 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2461,10 +2461,12 @@ static int cpufreq_notifier_policy(struct notifier_block *nb,
pre_big_small_task_count_change(cpu_possible_mask);
for_each_cpu(i, cpus) {
struct rq *rq = cpu_rq(i);
+ u64 max_possible_capacity;
rq->capacity = compute_capacity(i);
- rq->max_possible_capacity = rq->capacity *
- rq->max_possible_freq / rq->max_freq;
+ max_possible_capacity = div_u64(((u64) rq->capacity) *
+ rq->max_possible_freq, rq->max_freq);
+ rq->max_possible_capacity = (int) max_possible_capacity;
rq->load_scale_factor = compute_load_scale_factor(i);
}