Loading drivers/cpufreq/cpufreq_stats.c +9 −3 Original line number Diff line number Diff line Loading @@ -590,11 +590,12 @@ static void cpufreq_powerstats_free(void) } static int __cpufreq_stats_create_table(struct cpufreq_policy *policy, int cpu, struct cpufreq_frequency_table *table, int count) struct cpufreq_frequency_table *table, int count) { unsigned int i, j, ret = 0; struct cpufreq_stats *stat; unsigned int alloc_size; unsigned int cpu = policy->cpu; if (per_cpu(cpufreq_stats_table, cpu)) return -EBUSY; stat = kzalloc(sizeof(*stat), GFP_KERNEL); Loading @@ -604,6 +605,10 @@ static int __cpufreq_stats_create_table(struct cpufreq_policy *policy, } ret = sysfs_create_group(&policy->kobj, &stats_attr_group); if (ret) { pr_err("Failed to create cpufreq_stats sysfs\n"); goto error_out; } stat->cpu = cpu; per_cpu(cpufreq_stats_table, cpu) = stat; Loading Loading @@ -642,6 +647,7 @@ static int __cpufreq_stats_create_table(struct cpufreq_policy *policy, return 0; error_alloc: sysfs_remove_group(&policy->kobj, &stats_attr_group); error_out: kfree(stat); per_cpu(cpufreq_stats_table, cpu) = NULL; return ret; Loading Loading @@ -859,7 +865,7 @@ static int cpufreq_stat_notifier_policy(struct notifier_block *nb, cpufreq_powerstats_create(cpu, table, count); if (val == CPUFREQ_CREATE_POLICY) ret = __cpufreq_stats_create_table(policy, cpu, table, count); ret = __cpufreq_stats_create_table(policy, table, count); else if (val == CPUFREQ_REMOVE_POLICY) __cpufreq_stats_free_table(policy); Loading Loading @@ -895,7 +901,7 @@ static void cpufreq_stats_create_table(unsigned int cpu) if (!per_cpu(cpufreq_power_stats, cpu)) cpufreq_powerstats_create(cpu, table, count); __cpufreq_stats_create_table(policy, cpu, table, count); __cpufreq_stats_create_table(policy, table, count); } cpufreq_cpu_put(policy); } Loading Loading
drivers/cpufreq/cpufreq_stats.c +9 −3 Original line number Diff line number Diff line Loading @@ -590,11 +590,12 @@ static void cpufreq_powerstats_free(void) } static int __cpufreq_stats_create_table(struct cpufreq_policy *policy, int cpu, struct cpufreq_frequency_table *table, int count) struct cpufreq_frequency_table *table, int count) { unsigned int i, j, ret = 0; struct cpufreq_stats *stat; unsigned int alloc_size; unsigned int cpu = policy->cpu; if (per_cpu(cpufreq_stats_table, cpu)) return -EBUSY; stat = kzalloc(sizeof(*stat), GFP_KERNEL); Loading @@ -604,6 +605,10 @@ static int __cpufreq_stats_create_table(struct cpufreq_policy *policy, } ret = sysfs_create_group(&policy->kobj, &stats_attr_group); if (ret) { pr_err("Failed to create cpufreq_stats sysfs\n"); goto error_out; } stat->cpu = cpu; per_cpu(cpufreq_stats_table, cpu) = stat; Loading Loading @@ -642,6 +647,7 @@ static int __cpufreq_stats_create_table(struct cpufreq_policy *policy, return 0; error_alloc: sysfs_remove_group(&policy->kobj, &stats_attr_group); error_out: kfree(stat); per_cpu(cpufreq_stats_table, cpu) = NULL; return ret; Loading Loading @@ -859,7 +865,7 @@ static int cpufreq_stat_notifier_policy(struct notifier_block *nb, cpufreq_powerstats_create(cpu, table, count); if (val == CPUFREQ_CREATE_POLICY) ret = __cpufreq_stats_create_table(policy, cpu, table, count); ret = __cpufreq_stats_create_table(policy, table, count); else if (val == CPUFREQ_REMOVE_POLICY) __cpufreq_stats_free_table(policy); Loading Loading @@ -895,7 +901,7 @@ static void cpufreq_stats_create_table(unsigned int cpu) if (!per_cpu(cpufreq_power_stats, cpu)) cpufreq_powerstats_create(cpu, table, count); __cpufreq_stats_create_table(policy, cpu, table, count); __cpufreq_stats_create_table(policy, table, count); } cpufreq_cpu_put(policy); } Loading