summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/devfreq/governor_cpufreq.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/devfreq/governor_cpufreq.c b/drivers/devfreq/governor_cpufreq.c
index 01a6003cc391..fc4da03201f2 100644
--- a/drivers/devfreq/governor_cpufreq.c
+++ b/drivers/devfreq/governor_cpufreq.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -53,6 +53,7 @@ struct devfreq_node {
};
static LIST_HEAD(devfreq_list);
static DEFINE_MUTEX(state_lock);
+static DEFINE_MUTEX(cpufreq_reg_lock);
#define show_attr(name) \
static ssize_t show_##name(struct device *dev, \
@@ -240,7 +241,7 @@ static int register_cpufreq(void)
unsigned int cpu;
struct cpufreq_policy *policy;
- mutex_lock(&state_lock);
+ mutex_lock(&cpufreq_reg_lock);
if (cpufreq_cnt)
goto cnt_not_zero;
@@ -271,7 +272,7 @@ out:
cnt_not_zero:
if (!ret)
cpufreq_cnt++;
- mutex_unlock(&state_lock);
+ mutex_unlock(&cpufreq_reg_lock);
return ret;
}
@@ -280,7 +281,7 @@ static int unregister_cpufreq(void)
int ret = 0;
int cpu;
- mutex_lock(&state_lock);
+ mutex_lock(&cpufreq_reg_lock);
if (cpufreq_cnt > 1)
goto out;
@@ -300,7 +301,7 @@ static int unregister_cpufreq(void)
out:
cpufreq_cnt--;
- mutex_unlock(&state_lock);
+ mutex_unlock(&cpufreq_reg_lock);
return ret;
}