Skip to contentSkip to conversation

FAILED: patch "[PATCH] cpufreq: intel_pstate: Fix code ordering in" failed to apply to 4.6-stable tree

PATCH [email protected] 1 participant 1 message Jun 18, 2016

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 4.6-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

Quoted 1 line

From 2c2c1af4497514da1be2b571066859701dd79231 Mon Sep 17 00:00:00 2001

From: Srinivas Pandruvada <[email protected]>
Date: Tue, 7 Jun 2016 17:38:52 -0700
Subject: [PATCH] cpufreq: intel_pstate: Fix code ordering in
intel_pstate_set_policy()

The limits->max_perf is rounded_up but immediately overwritten by another assignment to limits->max_perf.

Move that operation to the correct location.

While here also added a pr_debug() call in ->set_policy to aid in debugging.

Fixes 785ee2788141 (cpufreq: intel_pstate: Fix limits->max_perf rounding error)
[ rjw : Subject & changelog ]
Cc 4.4+ <[email protected]> # 4.4+
drivers/cpufreq/intel_pstate.c +4 -1
index 0d159b513469..724b9056aa6b 100644
@@ -1460,6 +1460,9 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
 
 	intel_pstate_clear_update_util_hook(policy->cpu);
 
+	pr_debug("set_policy cpuinfo.max %u policy->max %u\n",
+		 policy->cpuinfo.max_freq, policy->max);
+
 	cpu = all_cpu_data[0];
 	if (cpu->pstate.max_pstate_physical > cpu->pstate.max_pstate &&
 	    policy->max < policy->cpuinfo.max_freq &&
@@ -1495,13 +1498,13 @@ static int intel_pstate_set_policy(struct cpufreq_policy *policy)
 				   limits->max_sysfs_pct);
 	limits->max_perf_pct = max(limits->min_policy_pct,
 				   limits->max_perf_pct);
-	limits->max_perf = round_up(limits->max_perf, FRAC_BITS);
 
 	/* Make sure min_perf_pct <= max_perf_pct */
 	limits->min_perf_pct = min(limits->max_perf_pct, limits->min_perf_pct);
 
 	limits->min_perf = div_fp(limits->min_perf_pct, 100);
 	limits->max_perf = div_fp(limits->max_perf_pct, 100);
+	limits->max_perf = round_up(limits->max_perf, FRAC_BITS);
 
  out:
 	intel_pstate_set_update_util_hook(policy->cpu);