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 <dhowe...@redhat.com>
Acked-by: Peter Zijlstra (Intel) <pet...@infradead.org> > --- > > 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 > * >