Thread (8 messages) flat view 8 messages, 4 authors, 2014-08-12

Re: [PATCH] atm/svc: Fix blocking in wait loop

From: David Miller <davem@davemloft.net>
Date: 2014-08-12 22:02:28
Also in: lkml, oe-lkp

From: chas williams - CONTRACTOR <redacted>
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 <redacted>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Applied.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help