summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2019-05-03 13:30:33 -0400
committerDavid Howells <dhowells@redhat.com>2019-05-15 12:35:54 -0400
commita49294eac27c7159cd8b89a96c3b1a857e37b683 (patch)
tree3627f604ba3767e3383ea01e7aa7399df546a02c
parentd0660f0b3b7d1760d1ab60ec8e9d0de52e885207 (diff)
Add wait_var_event_interruptible()
Add wait_var_event_interruptible() to allow interruptible waits for events. Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
-rw-r--r--include/linux/wait_bit.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/linux/wait_bit.h b/include/linux/wait_bit.h
index 2b0072fa5e92..7dec36aecbd9 100644
--- a/include/linux/wait_bit.h
+++ b/include/linux/wait_bit.h
@@ -305,6 +305,19 @@ do { \
305 __ret; \ 305 __ret; \
306}) 306})
307 307
308#define __wait_var_event_interruptible(var, condition) \
309 ___wait_var_event(var, condition, TASK_INTERRUPTIBLE, 0, 0, \
310 schedule())
311
312#define wait_var_event_interruptible(var, condition) \
313({ \
314 int __ret = 0; \
315 might_sleep(); \
316 if (!(condition)) \
317 __ret = __wait_var_event_interruptible(var, condition); \
318 __ret; \
319})
320
308/** 321/**
309 * clear_and_wake_up_bit - clear a bit and wake up anyone waiting on that bit 322 * clear_and_wake_up_bit - clear a bit and wake up anyone waiting on that bit
310 * 323 *