summaryrefslogtreecommitdiff
path: root/drivers/cpufreq
diff options
context:
space:
mode:
authorDirk Brandewie <dirk.brandewie@gmail.com>2013-02-06 09:02:12 -0800
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2013-02-09 12:55:59 +0100
commit633d47d653f3a717fb68293d24ab7059c480f71b (patch)
treefbfefad484062cacdd5541dc1aa4bbad2d2f0bbf /drivers/cpufreq
parentfa69e33f7d38e658583ff910642da7ea4515ad74 (diff)
downloadlwn-633d47d653f3a717fb68293d24ab7059c480f71b.tar.gz
lwn-633d47d653f3a717fb68293d24ab7059c480f71b.zip
cpufreq_stats: do not remove sysfs files if frequency table is not present
The sysfs files for cpufreq_stats are created in cpufreq_stats_create_table() called from cpufreq_stat_notifier_policy() when a policy is added to the cpu. cpufreq_stats_create_table() will not be called if the scaling driver does not export a frequency table to cpufreq. Use the same fence on tear down. Signed-off-by: Dirk Brandewie <dirk.j.brandewie@intel.com> Acked-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_stats.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/cpufreq/cpufreq_stats.c b/drivers/cpufreq/cpufreq_stats.c
index a2dee4cedf41..2fd779eb1ed1 100644
--- a/drivers/cpufreq/cpufreq_stats.c
+++ b/drivers/cpufreq/cpufreq_stats.c
@@ -179,6 +179,10 @@ static void cpufreq_stats_free_table(unsigned int cpu)
static void cpufreq_stats_free_sysfs(unsigned int cpu)
{
struct cpufreq_policy *policy = cpufreq_cpu_get(cpu);
+
+ if (!cpufreq_frequency_get_table(cpu))
+ return;
+
if (policy && !policy_is_shared(policy)) {
pr_debug("%s: Free sysfs stat\n", __func__);
sysfs_remove_group(&policy->kobj, &stats_attr_group);