diff options
author | Allan Stephens <allan.stephens@windriver.com> | 2012-04-18 09:12:09 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2012-04-19 15:46:46 -0400 |
commit | 974a5a864bf959b7f3412a31ee8ce001c6628451 (patch) | |
tree | 5f5c99f05f5dda3b6d4c384c1420700ab7d580ff | |
parent | f0712e86b75f4839773abbc01d5baa7e36e378c2 (diff) | |
download | linux-3.10-974a5a864bf959b7f3412a31ee8ce001c6628451.tar.gz linux-3.10-974a5a864bf959b7f3412a31ee8ce001c6628451.tar.bz2 linux-3.10-974a5a864bf959b7f3412a31ee8ce001c6628451.zip |
tipc: take lock while updating node network address
The routine that changes the node's network address now takes TIPC's
network lock in write mode while the main address variable and associated
data structures are being changed; this is needed to ensure that the
link subsystem won't attempt to send a message off-node until the sending
port's message header template has been updated with the node's new
network address.
Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | net/tipc/net.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/net.c b/net/tipc/net.c index d4531b07076..5fab4ff24a9 100644 --- a/net/tipc/net.c +++ b/net/tipc/net.c @@ -178,11 +178,12 @@ int tipc_net_start(u32 addr) tipc_subscr_stop(); tipc_cfg_stop(); + write_lock_bh(&tipc_net_lock); tipc_own_addr = addr; tipc_named_reinit(); tipc_port_reinit(); - tipc_bclink_init(); + write_unlock_bh(&tipc_net_lock); tipc_k_signal((Handler)tipc_subscr_start, 0); tipc_k_signal((Handler)tipc_cfg_init, 0); |