Revert "cpufreq: interactive: fix cpufreq object duplicate creatation in sysfs"

This reverts commit 857ad0187f.
Fixes by LSK commit b42fb9a710
("Revert "cpufreq: interactive: build fixes for 4.4"")
and commit de5723c8a6
("cpufreq: interactive: drop cpufreq_{get,put}_global_kobject func calls")

Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
This commit is contained in:
Huang, Tao 2016-07-05 18:35:00 +08:00
parent fa06d81d7a
commit 6330e362bd

View File

@ -116,6 +116,28 @@ struct cpufreq_interactive_tunables {
bool io_is_busy;
};
/*
* HACK: FIXME: Bring back cpufreq_{get,put}_global_kobject()
* definition removed by upstream commit 8eec1020f0c0 "cpufreq:
* create cpu/cpufreq at boot time" to fix build failures.
*/
static int cpufreq_global_kobject_usage;
int cpufreq_get_global_kobject(void)
{
if (!cpufreq_global_kobject_usage++)
return kobject_add(cpufreq_global_kobject,
&cpu_subsys.dev_root->kobj, "%s", "cpufreq");
return 0;
}
void cpufreq_put_global_kobject(void)
{
if (!--cpufreq_global_kobject_usage)
kobject_del(cpufreq_global_kobject);
}
/* For cases where we have single governor instance for system */
static struct cpufreq_interactive_tunables *common_tunables;
@ -1184,6 +1206,7 @@ static int cpufreq_governor_interactive(struct cpufreq_policy *policy,
policy->governor_data = tunables;
if (!have_governor_per_policy()) {
common_tunables = tunables;
WARN_ON(cpufreq_get_global_kobject());
}
rc = sysfs_create_group(get_governor_parent_kobj(policy),
@ -1193,6 +1216,7 @@ static int cpufreq_governor_interactive(struct cpufreq_policy *policy,
policy->governor_data = NULL;
if (!have_governor_per_policy()) {
common_tunables = NULL;
cpufreq_put_global_kobject();
}
return rc;
}
@ -1216,6 +1240,8 @@ static int cpufreq_governor_interactive(struct cpufreq_policy *policy,
sysfs_remove_group(get_governor_parent_kobj(policy),
get_sysfs_attr());
if (!have_governor_per_policy())
cpufreq_put_global_kobject();
kfree(tunables);
common_tunables = NULL;