From: chas williams - CONTRACTOR Date: Tue, 12 Aug 2014 08:12:26 -0400 > One should not call blocking primitives inside a wait loop, since both > require task_struct::state to sleep, so the inner will destroy the > outer state. > > sigd_enq() will possibly sleep for alloc_skb(). Move sigd_enq() before > prepare_to_wait() to avoid sleeping while waiting interruptibly. You do > not actually need to call sigd_enq() after the initial prepare_to_wait() > because we test the termination condition before calling schedule(). > > Based on suggestions from Peter Zijlstra. > > Signed-off-by: Chas Williams > Acked-by: Peter Zijlstra Applied.