Commit 10659ab7 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

cpufreq: Avoid double kobject_put() for the same kobject in error code path

The only case triggering a jump to the err_out_unregister label in
__cpufreq_add_dev() is when cpufreq_add_dev_interface() fails.
However, if cpufreq_add_dev_interface() fails, it calls kobject_put()
for the policy kobject in its error code path and since that causes
the kobject's refcount to become 0, the additional kobject_put() for
the same kobject under err_out_unregister and the
wait_for_completion() following it are pointless, so drop them.
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: default avatarSrivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent 71c3461e
...@@ -1109,9 +1109,6 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif, ...@@ -1109,9 +1109,6 @@ static int __cpufreq_add_dev(struct device *dev, struct subsys_interface *sif,
} }
write_unlock_irqrestore(&cpufreq_driver_lock, flags); write_unlock_irqrestore(&cpufreq_driver_lock, flags);
kobject_put(&policy->kobj);
wait_for_completion(&policy->kobj_unregister);
err_set_policy_cpu: err_set_policy_cpu:
per_cpu(cpufreq_policy_cpu, cpu) = -1; per_cpu(cpufreq_policy_cpu, cpu) = -1;
cpufreq_policy_free(policy); cpufreq_policy_free(policy);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment