From: Andi Kleen Date: Thu, 18 Oct 2007 19:32:55 +0000 (+0200) Subject: sched: fix return value of wait_for_completion_interruptible() X-Git-Tag: v2.6.24-rc1~291^2~4 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=51e97990234ed195a05b424bf04c387f5ae5e5cf;p=karo-tx-linux.git sched: fix return value of wait_for_completion_interruptible() The recent wait_for_completion() cleanups: commit 8cbbe86dfcfd68ad69916164bdc838d9e09adca8 Author: Andi Kleen Date: Mon Oct 15 17:00:14 2007 +0200 sched: cleanup: refactor common code of sleep_on / wait_for_completion Refactor common code of sleep_on / wait_for_completion broke the return value of wait_for_completion_interruptible(). Previously it returned 0 on success, now -1. Fix that. Problem found by Geert Uytterhoeven. [ mingo: fixed whitespace damage ] Reported-by: Geert Uytterhoeven Signed-off-by: Andi Kleen Signed-off-by: Ingo Molnar --- diff --git a/kernel/sched.c b/kernel/sched.c index 92721d1534b8..f6febb25c7b6 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -3859,7 +3859,10 @@ EXPORT_SYMBOL(wait_for_completion_timeout); int __sched wait_for_completion_interruptible(struct completion *x) { - return wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_INTERRUPTIBLE); + long t = wait_for_common(x, MAX_SCHEDULE_TIMEOUT, TASK_INTERRUPTIBLE); + if (t == -ERESTARTSYS) + return t; + return 0; } EXPORT_SYMBOL(wait_for_completion_interruptible);