aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched/wait.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/wait.c')
-rw-r--r--kernel/sched/wait.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c
index 17f11c6b0a9f..d6afed6d0752 100644
--- a/kernel/sched/wait.c
+++ b/kernel/sched/wait.c
@@ -70,9 +70,10 @@ static void __wake_up_common(struct wait_queue_head *wq_head, unsigned int mode,
70 70
71 list_for_each_entry_safe(curr, next, &wq_head->head, entry) { 71 list_for_each_entry_safe(curr, next, &wq_head->head, entry) {
72 unsigned flags = curr->flags; 72 unsigned flags = curr->flags;
73 73 int ret = curr->func(curr, mode, wake_flags, key);
74 if (curr->func(curr, mode, wake_flags, key) && 74 if (ret < 0)
75 (flags & WQ_FLAG_EXCLUSIVE) && !--nr_exclusive) 75 break;
76 if (ret && (flags & WQ_FLAG_EXCLUSIVE) && !--nr_exclusive)
76 break; 77 break;
77 } 78 }
78} 79}