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

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



Signed-off-by: default avatarDave Jones <davej@redhat.com>
parent e31a94ed
Loading
Loading
Loading
Loading
+8 −14
Original line number Original line Diff line number Diff line
@@ -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;
}
}