cpufreq_stats: do not remove sysfs files if frequency table is not present
authorDirk Brandewie <dirk.brandewie@gmail.com>
Wed, 6 Feb 2013 17:02:12 +0000 (09:02 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Sat, 9 Feb 2013 11:55:59 +0000 (12:55 +0100)
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>
drivers/cpufreq/cpufreq_stats.c

index a2dee4cedf417a8408a97139ab810d54856c5045..2fd779eb1ed1f9fcdb7cb70ab54ed319fe1e4160 100644 (file)
@@ -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);