]> git.baikalelectronics.ru Git - kernel.git/commit
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)
commit43bdfafc3170886b1a2283b84ff687b6f0a4c597
tree7c0c3aa49a645be67a43bdec3b3e354714dc1f61
parenta950b01db60fd2b54f87d648c9fb703eff251fd0
parent35443cdd756b0fc602cafc497f1208206379376b
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>