Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30d383d4 authored by Olav Haugan's avatar Olav Haugan
Browse files

sched: Fix overflow in max possible capacity calculation



The max possible capacity calculation might overflow given large enough
max possible frequency and capacity. Fix potential for overflow.

Change-Id: Ie9345bc657988845aeb450d922052550cca48a5f
Signed-off-by: default avatarOlav Haugan <ohaugan@codeaurora.org>
parent 7dd02a88
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -2442,10 +2442,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);
	}