remarkable-linux/net/tipc
Ying Xue dde2026608 tipc: use node list lock to protect tipc_num_links variable
Without properly implicit or explicit read memory barrier, it's
unsafe to read an atomic variable with atomic_read() from another
thread which is different with the thread of changing the atomic
variable with atomic_inc() or atomic_dec(). So a stale tipc_num_links
may be got with atomic_read() in tipc_node_get_links(). If the
tipc_num_links variable type is converted from atomic to unsigned
integer and node list lock is used to protect it, the issue would
be avoided.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Reviewed-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-03-27 13:08:38 -04:00
..
addr.c
addr.h tipc: explicitly include core.h in addr.h 2014-02-13 17:49:13 -05:00
bcast.c tipc: make broadcast bearer store in bearer_list array 2014-03-27 13:08:37 -04:00
bcast.h tipc: align tipc function names with common naming practice in the network 2014-02-18 17:31:59 -05:00
bearer.c tipc: make broadcast bearer store in bearer_list array 2014-03-27 13:08:37 -04:00
bearer.h tipc: remove active flag from tipc_bearer structure 2014-03-27 13:08:37 -04:00
config.c tipc: obsolete the remote management feature 2014-03-27 13:08:36 -04:00
config.h tipc: obsolete the remote management feature 2014-03-27 13:08:36 -04:00
core.c tipc: obsolete the remote management feature 2014-03-27 13:08:36 -04:00
core.h tipc: obsolete the remote management feature 2014-03-27 13:08:36 -04:00
discover.c tipc: align tipc function names with common naming practice in the network 2014-02-18 17:31:59 -05:00
discover.h tipc: align tipc function names with common naming practice in the network 2014-02-18 17:31:59 -05:00
eth_media.c
handler.c tipc: don't log disabled tasklet handler errors 2014-03-06 14:46:24 -05:00
ib_media.c
Kconfig
link.c tipc: tipc: convert node list and node hlist to RCU lists 2014-03-27 13:08:37 -04:00
link.h tipc: align tipc function names with common naming practice in the network 2014-02-18 17:31:59 -05:00
log.c
Makefile
msg.c
msg.h
name_distr.c tipc: tipc: convert node list and node hlist to RCU lists 2014-03-27 13:08:37 -04:00
name_distr.h tipc: align tipc function names with common naming practice in the network 2014-02-18 17:31:59 -05:00
name_table.c tipc: fix memory leak during module removal 2014-03-06 14:46:24 -05:00
name_table.h
net.c tipc: rename node create lock to protect node list and hlist 2014-03-27 13:08:37 -04:00
net.h
netlink.c tipc: remove all enabled flags from all tipc components 2014-02-22 00:00:15 -05:00
node.c tipc: use node list lock to protect tipc_num_links variable 2014-03-27 13:08:38 -04:00
node.h tipc: tipc: convert node list and node hlist to RCU lists 2014-03-27 13:08:37 -04:00
node_subscr.c
node_subscr.h
port.c tipc: eliminate redundant lookups in registry 2014-03-12 15:53:49 -04:00
port.h tipc: eliminate redundant lookups in registry 2014-03-12 15:53:49 -04:00
ref.c tipc: eliminate redundant lookups in registry 2014-03-12 15:53:49 -04:00
ref.h tipc: eliminate redundant lookups in registry 2014-03-12 15:53:49 -04:00
server.c tipc: fix connection refcount leak 2014-03-06 14:46:23 -05:00
server.h tipc: remove all enabled flags from all tipc components 2014-02-22 00:00:15 -05:00
socket.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-03-14 22:31:55 -04:00
socket.h tipc: align usage of variable names and macros in socket 2014-03-12 15:53:49 -04:00
subscr.c tipc: fix spinlock recursion bug for failed subscriptions 2014-03-24 15:36:56 -04:00
subscr.h
sysctl.c