aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunjie Wu <junjiew@codeaurora.org>2015-02-06 20:28:37 -0800
committerTodd Kjos <tkjos@google.com>2015-04-13 23:09:10 +0000
commitc203063b6fa4cc34945ab8aaf0e38a5b974c1075 (patch)
tree131c9eab6ade0892015c3794ebf3b5919a22ba5c
parentd403e8dc0fcd13cdbab8f08536b32d98f8cb0cfb (diff)
cpufreq: interactive: Put global cpufreq kobject on failure
Fix failure recovery path in cpufreq_governor_interactive(). Call cpufreq_put_global_kobject() to release cpufreq global kobject upon governor init failure. Change-Id: I7a977070b7a3c75c90acccd2c117064ed1a10d0e Signed-off-by: Junjie Wu <junjiew@codeaurora.org>
-rw-r--r--drivers/cpufreq/cpufreq_interactive.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/cpufreq/cpufreq_interactive.c b/drivers/cpufreq/cpufreq_interactive.c
index 24fe0ce88e77..6b3facdf5ba2 100644
--- a/drivers/cpufreq/cpufreq_interactive.c
+++ b/drivers/cpufreq/cpufreq_interactive.c
@@ -1185,8 +1185,10 @@ static int cpufreq_governor_interactive(struct cpufreq_policy *policy,
if (rc) {
kfree(tunables);
policy->governor_data = NULL;
- if (!have_governor_per_policy())
+ if (!have_governor_per_policy()) {
common_tunables = NULL;
+ cpufreq_put_global_kobject();
+ }
return rc;
}