Browse Source

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

refactor to use gotos instead of explicit exit paths

Signed-off-by: Dave Jones <davej@redhat.com>
Dave Jones 17 years ago
parent
commit
a07530b445
1 changed files with 5 additions and 4 deletions
  1. 5 4
      drivers/cpufreq/cpufreq.c

+ 5 - 4
drivers/cpufreq/cpufreq.c

@@ -696,13 +696,13 @@ static ssize_t store(struct kobject * kobj, struct attribute * attr,
 {
 	struct cpufreq_policy * policy = to_policy(kobj);
 	struct freq_attr * fattr = to_attr(attr);
-	ssize_t ret;
+	ssize_t ret = -EINVAL;
 	policy = cpufreq_cpu_get(policy->cpu);
 	if (!policy)
-		return -EINVAL;
+		goto no_policy;
 
 	if (lock_policy_rwsem_write(policy->cpu) < 0)
-		return -EINVAL;
+		goto fail;
 
 	if (fattr->store)
 		ret = fattr->store(policy, buf, count);
@@ -710,8 +710,9 @@ static ssize_t store(struct kobject * kobj, struct attribute * attr,
 		ret = -EIO;
 
 	unlock_policy_rwsem_write(policy->cpu);
-
+fail:
 	cpufreq_cpu_put(policy);
+no_policy:
 	return ret;
 }