]> 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)
commit9e4131f57543b230ff418b978001c99e93be4fa1
tree7c0c3aa49a645be67a43bdec3b3e354714dc1f61
parent423273248308090b29a9f98ae2646abf1428e3df
parentac94f3afe343f2c38a263a6f4a49bdd88b9405d4
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>