[CPUFREQ] Slightly shorten the error paths of cpufreq_suspend/cpufreq_resume

Signed-off-by: Dave Jones <davej@redhat.com>
This commit is contained in:
Dave Jones
2008-02-07 16:32:18 -05:00
parent e31a94ed37
commit c906049447

View File

@@ -1221,22 +1221,18 @@ static int cpufreq_suspend(struct sys_device * sysdev, pm_message_t pmsg)
return -EINVAL; return -EINVAL;
/* only handle each CPU group once */ /* only handle each CPU group once */
if (unlikely(cpu_policy->cpu != cpu)) { if (unlikely(cpu_policy->cpu != cpu))
cpufreq_cpu_put(cpu_policy); goto out;
return 0;
}
if (cpufreq_driver->suspend) { if (cpufreq_driver->suspend) {
ret = cpufreq_driver->suspend(cpu_policy, pmsg); ret = cpufreq_driver->suspend(cpu_policy, pmsg);
if (ret) { if (ret) {
printk(KERN_ERR "cpufreq: suspend failed in ->suspend " printk(KERN_ERR "cpufreq: suspend failed in ->suspend "
"step on CPU %u\n", cpu_policy->cpu); "step on CPU %u\n", cpu_policy->cpu);
cpufreq_cpu_put(cpu_policy); goto out;
return ret;
} }
} }
if (cpufreq_driver->flags & CPUFREQ_CONST_LOOPS) if (cpufreq_driver->flags & CPUFREQ_CONST_LOOPS)
goto out; goto out;
@@ -1270,7 +1266,7 @@ static int cpufreq_suspend(struct sys_device * sysdev, pm_message_t pmsg)
out: out:
cpufreq_cpu_put(cpu_policy); cpufreq_cpu_put(cpu_policy);
return 0; return ret;
} }
/** /**
@@ -1302,18 +1298,15 @@ static int cpufreq_resume(struct sys_device * sysdev)
return -EINVAL; return -EINVAL;
/* only handle each CPU group once */ /* only handle each CPU group once */
if (unlikely(cpu_policy->cpu != cpu)) { if (unlikely(cpu_policy->cpu != cpu))
cpufreq_cpu_put(cpu_policy); goto fail;
return 0;
}
if (cpufreq_driver->resume) { if (cpufreq_driver->resume) {
ret = cpufreq_driver->resume(cpu_policy); ret = cpufreq_driver->resume(cpu_policy);
if (ret) { if (ret) {
printk(KERN_ERR "cpufreq: resume failed in ->resume " printk(KERN_ERR "cpufreq: resume failed in ->resume "
"step on CPU %u\n", cpu_policy->cpu); "step on CPU %u\n", cpu_policy->cpu);
cpufreq_cpu_put(cpu_policy); goto fail;
return ret;
} }
} }
@@ -1353,6 +1346,7 @@ static int cpufreq_resume(struct sys_device * sysdev)
out: out:
schedule_work(&cpu_policy->update); schedule_work(&cpu_policy->update);
fail:
cpufreq_cpu_put(cpu_policy); cpufreq_cpu_put(cpu_policy);
return ret; return ret;
} }