summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Layton <jlayton@redhat.com>2011-12-26 00:29:55 +0100
committerRafael J. Wysocki <rjw@sisk.pl>2011-12-27 01:06:33 +0100
commitb3b73ec0d7fe5bf8f950232aa58dfa0416a62372 (patch)
treebeaf2eea7573acb110fe1159c032885b40e56ee7
parent467de1fc67d1bd2954eaac7019c564f28fa2b6a5 (diff)
downloadlinux-b3b73ec0d7fe5bf8f950232aa58dfa0416a62372.tar.gz
linux-b3b73ec0d7fe5bf8f950232aa58dfa0416a62372.tar.bz2
linux-b3b73ec0d7fe5bf8f950232aa58dfa0416a62372.zip
PM / Freezer: fix return value of freezable_schedule_timeout_killable()
...it should return the return code from schedule_timeout_killable(), not the one from freezer_count(). All of the current callers ignore the return code so the bug is harmless but it's worth fixing. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
-rw-r--r--include/linux/freezer.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/linux/freezer.h b/include/linux/freezer.h
index 7bcfe73d999b..0ab54e16a91f 100644
--- a/include/linux/freezer.h
+++ b/include/linux/freezer.h
@@ -116,9 +116,11 @@ static inline int freezer_should_skip(struct task_struct *p)
/* Like schedule_timeout_killable(), but should not block the freezer. */
#define freezable_schedule_timeout_killable(timeout) \
({ \
+ long __retval; \
freezer_do_not_count(); \
- schedule_timeout_killable(timeout); \
+ __retval = schedule_timeout_killable(timeout); \
freezer_count(); \
+ __retval; \
})
/*