Commit c9060494 authored by Dave Jones's avatar Dave Jones

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

Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent e31a94ed
...@@ -1221,22 +1221,18 @@ static int cpufreq_suspend(struct sys_device * sysdev, pm_message_t pmsg) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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;
} }
......
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