linux/net/tipc
Ying Xue 7b8613e0a1 tipc: fix a potential deadlock
Locking dependency detected below possible unsafe locking scenario:

           CPU0                          CPU1
T0:  tipc_named_rcv()                tipc_rcv()
T1:  [grab nametble write lock]*     [grab node lock]*
T2:  tipc_update_nametbl()           tipc_node_link_up()
T3:  tipc_nodesub_subscribe()        tipc_nametbl_publish()
T4:  [grab node lock]*               [grab nametble write lock]*

The opposite order of holding nametbl write lock and node lock on
above two different paths may result in a deadlock. If we move the
the updating of the name table after link state named out of node
lock, the reverse order of holding locks will be eliminated, and
as a result, the deadlock risk.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-10-21 15:28:15 -04:00
..
addr.c tipc: compress out gratuitous extra carriage returns 2012-04-30 15:53:56 -04:00
addr.h tipc: explicitly include core.h in addr.h 2014-02-13 17:49:13 -05:00
bcast.c tipc: fix bug in multicast congestion handling 2014-10-07 14:50:15 -04:00
bcast.h tipc: fix bug in multicast congestion handling 2014-10-07 14:50:15 -04:00
bearer.c tipc: improve and extend media address conversion functions 2014-05-14 15:19:48 -04:00
bearer.h tipc: improve and extend media address conversion functions 2014-05-14 15:19:48 -04:00
config.c tipc: use registry when scanning sockets 2014-08-23 11:18:34 -07:00
config.h tipc: obsolete the remote management feature 2014-03-27 13:08:36 -04:00
core.c tipc: remove files ref.h and ref.c 2014-08-23 11:18:35 -07:00
core.h tipc: add name distributor resiliency queue 2014-09-01 17:51:48 -07:00
discover.c tipc: clean up neigbor discovery message reception 2014-05-14 15:19:48 -04:00
discover.h tipc: fix race in disc create/delete 2014-04-22 21:17:53 -04:00
eth_media.c tipc: improve and extend media address conversion functions 2014-05-14 15:19:48 -04:00
ib_media.c tipc: improve and extend media address conversion functions 2014-05-14 15:19:48 -04:00
Kconfig tipc: add InfiniBand media type 2013-04-17 14:18:33 -04:00
link.c tipc: fix bug in bundled buffer reception 2014-10-17 23:50:53 -04:00
link.h tipc: use pseudo message to wake up sockets after link congestion 2014-08-23 11:18:33 -07:00
log.c tipc: remove print_buf and deprecated log buffer code 2012-07-13 19:34:43 -04:00
Makefile tipc: remove files ref.h and ref.c 2014-08-23 11:18:35 -07:00
msg.c tipc: use pseudo message to wake up sockets after link congestion 2014-08-23 11:18:33 -07:00
msg.h tipc: use pseudo message to wake up sockets after link congestion 2014-08-23 11:18:33 -07:00
name_distr.c tipc: fix sparse warnings 2014-09-10 14:00:58 -07:00
name_distr.h tipc: add name distributor resiliency queue 2014-09-01 17:51:48 -07:00
name_table.c tipc: add name distributor resiliency queue 2014-09-01 17:51:48 -07:00
name_table.h tipc: cosmetic realignment of function arguments 2013-06-17 15:53:01 -07:00
net.c tipc: remove include file port.h 2014-08-23 11:18:35 -07:00
net.h tipc: same receive code path for connection protocol and data messages 2014-06-27 12:50:56 -07:00
netlink.c net: Use netlink_ns_capable to verify the permisions of netlink messages 2014-04-24 13:44:54 -04:00
node_subscr.c tipc: eliminate case of writing to freed memory 2014-06-27 12:50:54 -07:00
node_subscr.h tipc: avoid to asynchronously notify subscriptions 2014-05-05 17:26:44 -04:00
node.c tipc: fix a potential deadlock 2014-10-21 15:28:15 -04:00
node.h tipc: fix a potential deadlock 2014-10-21 15:28:15 -04:00
server.c net: Fix use after free by removing length arg from sk_data_ready callbacks. 2014-04-11 16:15:36 -04:00
server.h tipc: remove all enabled flags from all tipc components 2014-02-22 00:00:15 -05:00
socket.c tipc: fix a potential deadlock 2014-10-21 15:28:15 -04:00
socket.h tipc: merge struct tipc_port into struct tipc_sock 2014-08-23 11:18:35 -07:00
subscr.c tipc: remove include file port.h 2014-08-23 11:18:35 -07:00
subscr.h tipc: cosmetic realignment of function arguments 2013-06-17 15:53:01 -07:00
sysctl.c tipc: add name distributor resiliency queue 2014-09-01 17:51:48 -07:00