diff options
author | David Howells <dhowells@redhat.com> | 2019-05-03 13:30:33 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2019-05-15 12:35:54 -0400 |
commit | a49294eac27c7159cd8b89a96c3b1a857e37b683 (patch) | |
tree | 3627f604ba3767e3383ea01e7aa7399df546a02c | |
parent | d0660f0b3b7d1760d1ab60ec8e9d0de52e885207 (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.h | 13 |
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 | * |