Merge branch 'tipc'
authorDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2014 03:11:22 +0000 (19:11 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 17 Jan 2014 03:11:22 +0000 (19:11 -0800)
commit8b88a11e4451a967973b7b8b5e82ff62f3d69945
tree7c0c3aa49a645be67a43bdec3b3e354714dc1f61
parentabfce3ef58b6a6c95de389f9d20047a05b10e484
parent9bbb4ecc681968b7cf781e08e3918604c3b699d3
Merge branch 'tipc'

Ying Xue says:

====================
tipc: align TIPC behaviours of waiting for events with other stacks

Comparing the current implementations of waiting for events in TIPC
socket layer with other stacks, TIPC's behaviour is very different
because wait_event_interruptible_timeout()/wait_event_interruptible()
are always used by TIPC to wait for events while relevant socket or
port variables are fed to them as their arguments. As socket lock has
to be released temporarily before the two routines of waiting for
events are called, their arguments associated with socket or port
structures are out of socket lock protection. This might cause
serious issues where the process of calling socket syscall such as
sendsmg(), connect(), accept(), and recvmsg(), cannot be waken up
at all even if proper event arrives or improperly be woken up
although the condition of waking up the process is not satisfied
in practice.

Therefore, aligning its behaviours with similar functions implemented
in other stacks, for instance, sk_stream_wait_connect() and
inet_csk_wait_for_connect() etc, can avoid above risks for us.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>