diff --git a/net/tipc/net.c b/net/tipc/net.c index cce8d086f173..8fbc7e6ae3df 100644 --- a/net/tipc/net.c +++ b/net/tipc/net.c @@ -109,22 +109,6 @@ */ DEFINE_RWLOCK(tipc_net_lock); -atomic_t tipc_num_links; - -static int net_start(void) -{ - atomic_set(&tipc_num_links, 0); - - return 0; -} - -static void net_stop(void) -{ - struct tipc_node *node, *t_node; - - list_for_each_entry_safe(node, t_node, &tipc_node_list, list) - tipc_node_delete(node); -} static void net_route_named_msg(struct sk_buff *buf) { @@ -214,9 +198,6 @@ int tipc_net_start(u32 addr) tipc_named_reinit(); tipc_port_reinit(); - res = net_start(); - if (res) - return res; res = tipc_bclink_init(); if (res) return res; @@ -232,14 +213,16 @@ int tipc_net_start(u32 addr) void tipc_net_stop(void) { + struct tipc_node *node, *t_node; + if (tipc_mode != TIPC_NET_MODE) return; write_lock_bh(&tipc_net_lock); tipc_bearer_stop(); tipc_mode = TIPC_NODE_MODE; tipc_bclink_stop(); - net_stop(); + list_for_each_entry_safe(node, t_node, &tipc_node_list, list); + tipc_node_delete(node); write_unlock_bh(&tipc_net_lock); info("Left network mode\n"); } - diff --git a/net/tipc/net.h b/net/tipc/net.h index 0ba6093fb6ce..9eb4b9e220eb 100644 --- a/net/tipc/net.h +++ b/net/tipc/net.h @@ -37,8 +37,6 @@ #ifndef _TIPC_NET_H #define _TIPC_NET_H -extern atomic_t tipc_num_links; - extern rwlock_t tipc_net_lock; void tipc_net_route_msg(struct sk_buff *buf); diff --git a/net/tipc/node.c b/net/tipc/node.c index 22aeb2b7ad00..66099cb1d6d6 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c @@ -47,6 +47,8 @@ static DEFINE_SPINLOCK(node_create_lock); static struct hlist_head node_htable[NODE_HTABLE_SIZE]; LIST_HEAD(tipc_node_list); static u32 tipc_num_nodes; + +static atomic_t tipc_num_links = ATOMIC_INIT(0); u32 tipc_own_tag; /**