kernel-ark/net/tipc
Jon Paul Maloy 5a9ee0be33 tipc: use registry when scanning sockets
The functions tipc_port_get_ports() and tipc_port_reinit() scan over
all sockets/ports to access each of them. This is done by using a
dedicated linked list, 'tipc_socks' where all sockets are members. The
list is in turn protected by a spinlock, 'port_list_lock', while each
socket is locked by using port_lock at the moment of access.

In order to reduce complexity and risk of deadlock, we want to get
rid of the linked list and the accompanying spinlock.

This is what we do in this commit. Instead of the linked list, we use
the port registry to scan across the sockets. We also add usage of
bh_lock_sock() inside the scope of port_lock in both functions, as a
preparation for the complete removal of port_lock.

Finally, we move the functions from port.c to socket.c, and rename them
to tipc_sk_sock_show() and tipc_sk_reinit() repectively.

Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Reviewed-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-08-23 11:18:34 -07: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: use pseudo message to wake up sockets after link congestion 2014-08-23 11:18:33 -07:00
bcast.h tipc: rename temporarily named functions 2014-07-16 21:38:19 -07: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: decrease connection flow control window 2014-05-14 15:19:47 -04:00
core.h tipc: use pseudo message to wake up sockets after link congestion 2014-08-23 11:18:33 -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: use pseudo message to wake up sockets after link congestion 2014-08-23 11:18:33 -07: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: purge signal handler infrastructure 2014-05-05 17:26:45 -04: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: rename temporarily named functions 2014-07-16 21:38:19 -07:00
name_distr.h tipc: make name table distributor use new send function 2014-07-16 21:38:18 -07:00
name_table.c tipc: fix memory leak of publications 2014-04-30 13:31:26 -04:00
name_table.h tipc: cosmetic realignment of function arguments 2013-06-17 15:53:01 -07:00
net.c tipc: use registry when scanning sockets 2014-08-23 11:18:34 -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: use message to abort connections when losing contact to node 2014-08-23 11:18:33 -07:00
node.h tipc: use message to abort connections when losing contact to node 2014-08-23 11:18:33 -07:00
port.c tipc: use registry when scanning sockets 2014-08-23 11:18:34 -07:00
port.h tipc: use registry when scanning sockets 2014-08-23 11:18:34 -07:00
ref.c tipc: use registry when scanning sockets 2014-08-23 11:18:34 -07:00
ref.h tipc: use registry when scanning sockets 2014-08-23 11:18:34 -07: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: use registry when scanning sockets 2014-08-23 11:18:34 -07:00
socket.h tipc: use registry when scanning sockets 2014-08-23 11:18:34 -07:00
subscr.c tipc: fix spinlock recursion bug for failed subscriptions 2014-03-24 15:36:56 -04:00
subscr.h tipc: cosmetic realignment of function arguments 2013-06-17 15:53:01 -07:00
sysctl.c tipc: change socket buffer overflow control to respect sk_rcvbuf 2013-06-17 15:53:00 -07:00