Commit a07530b4 authored by Dave Jones's avatar Dave Jones
Browse files

[CPUFREQ] Fix missing cpufreq_cpu_put() call in ->store



refactor to use gotos instead of explicit exit paths

Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent 0db4a8a9
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
@@ -696,13 +696,13 @@ static ssize_t store(struct kobject * kobj, struct attribute * attr,
{
{
	struct cpufreq_policy * policy = to_policy(kobj);
	struct cpufreq_policy * policy = to_policy(kobj);
	struct freq_attr * fattr = to_attr(attr);
	struct freq_attr * fattr = to_attr(attr);
	ssize_t ret;
	ssize_t ret = -EINVAL;
	policy = cpufreq_cpu_get(policy->cpu);
	policy = cpufreq_cpu_get(policy->cpu);
	if (!policy)
	if (!policy)
		return -EINVAL;
		goto no_policy;


	if (lock_policy_rwsem_write(policy->cpu) < 0)
	if (lock_policy_rwsem_write(policy->cpu) < 0)
		return -EINVAL;
		goto fail;


	if (fattr->store)
	if (fattr->store)
		ret = fattr->store(policy, buf, count);
		ret = fattr->store(policy, buf, count);
@@ -710,8 +710,9 @@ static ssize_t store(struct kobject * kobj, struct attribute * attr,
		ret = -EIO;
		ret = -EIO;


	unlock_policy_rwsem_write(policy->cpu);
	unlock_policy_rwsem_write(policy->cpu);

fail:
	cpufreq_cpu_put(policy);
	cpufreq_cpu_put(policy);
no_policy:
	return ret;
	return ret;
}
}