|
@@ -1078,15 +1078,11 @@ err_free_policy:
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-static void cpufreq_policy_put_kobj(struct cpufreq_policy *policy, bool notify)
|
|
|
|
|
|
+static void cpufreq_policy_put_kobj(struct cpufreq_policy *policy)
|
|
{
|
|
{
|
|
struct kobject *kobj;
|
|
struct kobject *kobj;
|
|
struct completion *cmp;
|
|
struct completion *cmp;
|
|
|
|
|
|
- if (notify)
|
|
|
|
- blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
|
|
|
|
- CPUFREQ_REMOVE_POLICY, policy);
|
|
|
|
-
|
|
|
|
down_write(&policy->rwsem);
|
|
down_write(&policy->rwsem);
|
|
cpufreq_stats_free_table(policy);
|
|
cpufreq_stats_free_table(policy);
|
|
kobj = &policy->kobj;
|
|
kobj = &policy->kobj;
|
|
@@ -1104,7 +1100,7 @@ static void cpufreq_policy_put_kobj(struct cpufreq_policy *policy, bool notify)
|
|
pr_debug("wait complete\n");
|
|
pr_debug("wait complete\n");
|
|
}
|
|
}
|
|
|
|
|
|
-static void cpufreq_policy_free(struct cpufreq_policy *policy, bool notify)
|
|
|
|
|
|
+static void cpufreq_policy_free(struct cpufreq_policy *policy)
|
|
{
|
|
{
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
int cpu;
|
|
int cpu;
|
|
@@ -1117,7 +1113,7 @@ static void cpufreq_policy_free(struct cpufreq_policy *policy, bool notify)
|
|
per_cpu(cpufreq_cpu_data, cpu) = NULL;
|
|
per_cpu(cpufreq_cpu_data, cpu) = NULL;
|
|
write_unlock_irqrestore(&cpufreq_driver_lock, flags);
|
|
write_unlock_irqrestore(&cpufreq_driver_lock, flags);
|
|
|
|
|
|
- cpufreq_policy_put_kobj(policy, notify);
|
|
|
|
|
|
+ cpufreq_policy_put_kobj(policy);
|
|
free_cpumask_var(policy->real_cpus);
|
|
free_cpumask_var(policy->real_cpus);
|
|
free_cpumask_var(policy->related_cpus);
|
|
free_cpumask_var(policy->related_cpus);
|
|
free_cpumask_var(policy->cpus);
|
|
free_cpumask_var(policy->cpus);
|
|
@@ -1244,8 +1240,6 @@ static int cpufreq_online(unsigned int cpu)
|
|
goto out_exit_policy;
|
|
goto out_exit_policy;
|
|
|
|
|
|
cpufreq_stats_create_table(policy);
|
|
cpufreq_stats_create_table(policy);
|
|
- blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
|
|
|
|
- CPUFREQ_CREATE_POLICY, policy);
|
|
|
|
|
|
|
|
write_lock_irqsave(&cpufreq_driver_lock, flags);
|
|
write_lock_irqsave(&cpufreq_driver_lock, flags);
|
|
list_add(&policy->policy_list, &cpufreq_policy_list);
|
|
list_add(&policy->policy_list, &cpufreq_policy_list);
|
|
@@ -1282,7 +1276,7 @@ out_exit_policy:
|
|
if (cpufreq_driver->exit)
|
|
if (cpufreq_driver->exit)
|
|
cpufreq_driver->exit(policy);
|
|
cpufreq_driver->exit(policy);
|
|
out_free_policy:
|
|
out_free_policy:
|
|
- cpufreq_policy_free(policy, !new_policy);
|
|
|
|
|
|
+ cpufreq_policy_free(policy);
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1403,7 +1397,7 @@ static void cpufreq_remove_dev(struct device *dev, struct subsys_interface *sif)
|
|
remove_cpu_dev_symlink(policy, dev);
|
|
remove_cpu_dev_symlink(policy, dev);
|
|
|
|
|
|
if (cpumask_empty(policy->real_cpus))
|
|
if (cpumask_empty(policy->real_cpus))
|
|
- cpufreq_policy_free(policy, true);
|
|
|
|
|
|
+ cpufreq_policy_free(policy);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|