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
> *
>