summaryrefslogtreecommitdiff
path: root/net/xfrm/xfrm_hash.h
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2011-06-30 13:53:53 -0400
committerJaikumar Ganesh <jaikumar@google.com>2011-07-18 12:28:02 -0700
commit6fc4300c4cfe05d805882e8f2ee1dcb82e216c06 (patch)
treed45a84910a4d20f9ed69e4e52c4a0c58545ef8ff /net/xfrm/xfrm_hash.h
parent1752e5327a01247d605515dbba86ad32a493db93 (diff)
Bluetooth: Fix hidp disconnect deadlocks and lost wakeup
Partial revert of commit aabf6f89. When the hidp session thread was converted from kernel_thread to kthread, the atomic/wakeups were replaced with kthread_stop. kthread_stop has blocking semantics which are inappropriate for the hidp session kthread. In addition, the kthread signals itself to terminate in hidp_process_hid_control() - it cannot do this with kthread_stop(). Lastly, a wakeup can be lost if the wakeup happens between checking for the loop exit condition and setting the current state to TASK_INTERRUPTIBLE. (Without appropriate synchronization mechanisms, the task state should not be changed between the condition test and the yield - via schedule() - as this creates a race between the wakeup and resetting the state back to interruptible.) Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'net/xfrm/xfrm_hash.h')
0 files changed, 0 insertions, 0 deletions