diff options
author | Marcos Paulo de Souza <marcos.mage@gmail.com> | 2012-02-04 16:26:13 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2012-02-09 17:55:43 -0500 |
commit | 8916e3702ec422b57cc549fbae3986106292100f (patch) | |
tree | 476b8f1079e607518d8be5333abfd58ef53d792f | |
parent | 3ed3c7b559f3cae7a5a92860a127ceb0cafd5a9c (diff) |
PM / Suspend: Avoid code duplication in suspend statistics update
The code
if (error) {
suspend_stats.fail++;
dpm_save_failed_errno(error);
} else
suspend_stats.success++;
Appears in the kernel/power/main.c and kernel/power/suspend.c.
This patch just creates a new function to avoid duplicated code.
Suggested-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Marcos Paulo de Souza <marcos.mage@gmail.com>
Acked-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
-rw-r--r-- | include/linux/suspend.h | 16 | ||||
-rw-r--r-- | kernel/power/main.c | 6 | ||||
-rw-r--r-- | kernel/power/suspend.c | 6 |
3 files changed, 18 insertions, 10 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h index ac1c114c499d..b90191894441 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h | |||
@@ -95,6 +95,22 @@ static inline void dpm_save_failed_step(enum suspend_stat_step step) | |||
95 | } | 95 | } |
96 | 96 | ||
97 | /** | 97 | /** |
98 | * suspend_stats_update - Update success/failure statistics of suspend-to-ram | ||
99 | * | ||
100 | * @error: Value returned by enter_state() function | ||
101 | */ | ||
102 | static inline void suspend_stats_update(int error) | ||
103 | { | ||
104 | if (error) { | ||
105 | suspend_stats.fail++; | ||
106 | dpm_save_failed_errno(error); | ||
107 | } else { | ||
108 | suspend_stats.success++; | ||
109 | } | ||
110 | } | ||
111 | |||
112 | |||
113 | /** | ||
98 | * struct platform_suspend_ops - Callbacks for managing platform dependent | 114 | * struct platform_suspend_ops - Callbacks for managing platform dependent |
99 | * system sleep states. | 115 | * system sleep states. |
100 | * | 116 | * |
diff --git a/kernel/power/main.c b/kernel/power/main.c index 8c5014a4e052..b1e324878d5f 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
@@ -296,11 +296,7 @@ static ssize_t state_store(struct kobject *kobj, struct kobj_attribute *attr, | |||
296 | } | 296 | } |
297 | if (state < PM_SUSPEND_MAX && *s) { | 297 | if (state < PM_SUSPEND_MAX && *s) { |
298 | error = enter_state(state); | 298 | error = enter_state(state); |
299 | if (error) { | 299 | suspend_stats_update(error); |
300 | suspend_stats.fail++; | ||
301 | dpm_save_failed_errno(error); | ||
302 | } else | ||
303 | suspend_stats.success++; | ||
304 | } | 300 | } |
305 | #endif | 301 | #endif |
306 | 302 | ||
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 560a639614a1..03bc92b42750 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
@@ -321,11 +321,7 @@ int pm_suspend(suspend_state_t state) | |||
321 | int ret; | 321 | int ret; |
322 | if (state > PM_SUSPEND_ON && state < PM_SUSPEND_MAX) { | 322 | if (state > PM_SUSPEND_ON && state < PM_SUSPEND_MAX) { |
323 | ret = enter_state(state); | 323 | ret = enter_state(state); |
324 | if (ret) { | 324 | suspend_stats_update(ret); |
325 | suspend_stats.fail++; | ||
326 | dpm_save_failed_errno(ret); | ||
327 | } else | ||
328 | suspend_stats.success++; | ||
329 | return ret; | 325 | return ret; |
330 | } | 326 | } |
331 | return -EINVAL; | 327 | return -EINVAL; |