summary refs log tree commit diff
path: root/kernel/power/suspend.c
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2012-02-13 16:29:33 +0100
committerRafael J. Wysocki <rjw@sisk.pl>2012-02-17 23:36:23 +0100
commitbc25cf508942c56810d4fb623ef27b56ccef7783 (patch)
tree1a991dd6fc5fcbdc0ef3eebe4ef5291787dd6d30 /kernel/power/suspend.c
parent93e1ee43a72b11e1b50aab87046c131a836a4456 (diff)
downloadlinux-bc25cf508942c56810d4fb623ef27b56ccef7783.tar.gz
PM / Sleep: Drop suspend_stats_update()
Since suspend_stats_update() is only called from pm_suspend(),
move its code directly into that function and remove the static
inline definition from include/linux/suspend.h.  Clean_up
pm_suspend() in the process.

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Diffstat (limited to 'kernel/power/suspend.c')
-rw-r--r--kernel/power/suspend.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 4914358a0543..88e5c967370d 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -316,12 +316,18 @@ static int enter_state(suspend_state_t state)
  */
 int pm_suspend(suspend_state_t state)
 {
-	int ret;
-	if (state > PM_SUSPEND_ON && state < PM_SUSPEND_MAX) {
-		ret = enter_state(state);
-		suspend_stats_update(ret);
-		return ret;
+	int error;
+
+	if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX)
+		return -EINVAL;
+
+	error = enter_state(state);
+	if (error) {
+		suspend_stats.fail++;
+		dpm_save_failed_errno(error);
+	} else {
+		suspend_stats.success++;
 	}
-	return -EINVAL;
+	return error;
 }
 EXPORT_SYMBOL(pm_suspend);