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

Commit 30857f28 authored by Todd Poynor's avatar Todd Poynor Committed by Amit Pundir
Browse files

cpufreq: interactive: handle errors from cpufreq_frequency_table_target



Add checks for error return from cpufreq_frequency_table_target, and be
less noisy on the existing call with an error check.  CPU hotplug and
system shutdown may cause this call to return -EINVAL.

Bug: 8613560
Change-Id: Id78d8829920462c0db1c7e14e717d91740d6cb44
Signed-off-by: default avatarTodd Poynor <toddpoynor@google.com>
parent f207e39b
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -246,9 +246,10 @@ static unsigned int choose_freq(
		 * than or equal to the target load.
		 */

		cpufreq_frequency_table_target(
		if (cpufreq_frequency_table_target(
			    pcpu->policy, pcpu->freq_table, loadadjfreq / tl,
			CPUFREQ_RELATION_L, &index);
			    CPUFREQ_RELATION_L, &index))
			break;
		freq = pcpu->freq_table[index].frequency;

		if (freq > prevfreq) {
@@ -260,10 +261,11 @@ static unsigned int choose_freq(
				 * Find the highest frequency that is less
				 * than freqmax.
				 */
				cpufreq_frequency_table_target(
				if (cpufreq_frequency_table_target(
					    pcpu->policy, pcpu->freq_table,
					    freqmax - 1, CPUFREQ_RELATION_H,
					&index);
					    &index))
					break;
				freq = pcpu->freq_table[index].frequency;

				if (freq == freqmin) {
@@ -286,10 +288,11 @@ static unsigned int choose_freq(
				 * Find the lowest frequency that is higher
				 * than freqmin.
				 */
				cpufreq_frequency_table_target(
				if (cpufreq_frequency_table_target(
					    pcpu->policy, pcpu->freq_table,
					    freqmin + 1, CPUFREQ_RELATION_L,
					&index);
					    &index))
					break;
				freq = pcpu->freq_table[index].frequency;

				/*
@@ -388,11 +391,8 @@ static void cpufreq_interactive_timer(unsigned long data)

	if (cpufreq_frequency_table_target(pcpu->policy, pcpu->freq_table,
					   new_freq, CPUFREQ_RELATION_L,
					   &index)) {
		pr_warn_once("timer %d: cpufreq_frequency_table_target error\n",
			     (int) data);
					   &index))
		goto rearm;
	}

	new_freq = pcpu->freq_table[index].frequency;