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

From: Peter Zijlstra
Date: Wed May 15 2019 - 13:32:41 EST


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 <dhowells@xxxxxxxxxx>

Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>

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