summaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2015-08-03 05:06:16 +0200
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-09-01 15:50:39 +0200
commit14ca0bdfdd6b422027b9b733abb0bf151811eaa7 (patch)
treeb5907d54cb1fbd3de8a747e0d0edc75ba7ea1a1a /drivers/cpufreq
parentcpufreq: use memcpy() to copy policy (diff)
downloadlinux-14ca0bdfdd6b422027b9b733abb0bf151811eaa7.tar.xz
linux-14ca0bdfdd6b422027b9b733abb0bf151811eaa7.zip
cpufreq: update user_policy.* on success
'user_policy' caches properties of a policy that are set by userspace. And these must be updated only if cpufreq core was successful in updating them based on request from user space. In store_scaling_governor(), we are updating user_policy.policy and user_policy.governor even if cpufreq_set_policy() failed. That's incorrect. Fix this by updating user_policy.* only if we were successful in updating the properties. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpufreq')
-rw-r--r--drivers/cpufreq/cpufreq.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 86d69416821b..8e71d8e08439 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -671,14 +671,12 @@ static ssize_t store_scaling_governor(struct cpufreq_policy *policy,
return -EINVAL;
ret = cpufreq_set_policy(policy, &new_policy);
+ if (ret)
+ return ret;
policy->user_policy.policy = policy->policy;
policy->user_policy.governor = policy->governor;
-
- if (ret)
- return ret;
- else
- return count;
+ return count;
}
/**