Re: [PATCH 07/15] Add wait_var_event_interruptible()

2019-05-15 Thread Peter Zijlstra
On Wed, May 15, 2019 at 05:26:28PM +0100, David Howells wrote:
> Add wait_var_event_interruptible() to allow interruptible waits for events.
> 
> Signed-off-by: David Howells 

Acked-by: Peter Zijlstra (Intel) 

> ---
> 
>  include/linux/wait_bit.h |   13 +
>  1 file changed, 13 insertions(+)
> 
> 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 { 
> \
>   __ret;  \
>  })
>  
> +#define __wait_var_event_interruptible(var, condition)   
> \
> + ___wait_var_event(var, condition, TASK_INTERRUPTIBLE, 0, 0, \
> +   schedule())
> +
> +#define wait_var_event_interruptible(var, condition) \
> +({   \
> + int __ret = 0;  \
> + might_sleep();  \
> + if (!(condition))   \
> + __ret = __wait_var_event_interruptible(var, condition); \
> + __ret;  \
> +})
> +
>  /**
>   * clear_and_wake_up_bit - clear a bit and wake up anyone waiting on that bit
>   *
> 


[PATCH 07/15] Add wait_var_event_interruptible()

2019-05-15 Thread David Howells
Add wait_var_event_interruptible() to allow interruptible waits for events.

Signed-off-by: David Howells 
cc: Peter Zijlstra 
---

 include/linux/wait_bit.h |   13 +
 1 file changed, 13 insertions(+)

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 {   
\
__ret;  \
 })
 
+#define __wait_var_event_interruptible(var, condition) \
+   ___wait_var_event(var, condition, TASK_INTERRUPTIBLE, 0, 0, \
+ schedule())
+
+#define wait_var_event_interruptible(var, condition)   \
+({ \
+   int __ret = 0;  \
+   might_sleep();  \
+   if (!(condition))   \
+   __ret = __wait_var_event_interruptible(var, condition); \
+   __ret;  \
+})
+
 /**
  * clear_and_wake_up_bit - clear a bit and wake up anyone waiting on that bit
  *