diff options
author | chas williams - CONTRACTOR <[email protected]> | 2014-08-12 08:12:26 -0400 |
---|---|---|
committer | David S. Miller <[email protected]> | 2014-08-13 20:04:46 -0700 |
commit | de713b57947a7a1b9cc605c0296ee14065cd86b6 (patch) | |
tree | d47fa60ae55956e23ff7c1d57c32bdcafd3f65f8 /tools/perf/util/scripting-engines/trace-event-python.c | |
parent | 10545937e866ccdbb7ab583031dbdcc6b14e4eb4 (diff) |
atm/svc: Fix blocking in wait loop
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 <[email protected]>
Acked-by: Peter Zijlstra <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'tools/perf/util/scripting-engines/trace-event-python.c')
0 files changed, 0 insertions, 0 deletions