summaryrefslogtreecommitdiffstats
path: root/net/tipc/link.c
diff options
context:
space:
mode:
authorJon Paul Maloy <jon.maloy@ericsson.com>2015-07-30 18:24:15 -0400
committerDavid S. Miller <davem@davemloft.net>2015-07-30 17:25:13 -0700
commitcbeb83ca68dcedf69b336fd1c5263658cbe5b51e (patch)
treeb22597a2b2c77c52c320210316433a939cc699b7 /net/tipc/link.c
parent29a3060aa7cc2e5cfaabeb935fafb832b9b33ad4 (diff)
downloadlinux-cbeb83ca68dcedf69b336fd1c5263658cbe5b51e.tar.gz
linux-cbeb83ca68dcedf69b336fd1c5263658cbe5b51e.tar.bz2
linux-cbeb83ca68dcedf69b336fd1c5263658cbe5b51e.zip
tipc: eliminate function tipc_link_activate()
The function tipc_link_activate() is redundant, since it mostly performs settings that have already been done in a preceding tipc_link_reset(). There are three exceptions to this: - The actual state change to TIPC_LINK_WORKING. This should anyway be done in the FSM, and not in a separate function. - Registration of the link with the bearer. This should be done by the node, since we don't want the link to have any knowledge about its specific bearer. - Call to tipc_node_link_up() for user access registration. With the new role distribution between link aggregation and link level this becomes the wrong call order; tipc_node_link_up() should instead be called directly as a result of a TIPC_LINK_UP event, hence by the node itself. This commit implements those changes. Tested-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>
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r--net/tipc/link.c17
1 files changed, 4 insertions, 13 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index cc40aa6eb66c..05837ba7b68c 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -228,6 +228,8 @@ struct tipc_link *tipc_link_create(struct tipc_node *n_ptr,
l_ptr->peer_session = WILDCARD_SESSION;
l_ptr->bearer_id = b_ptr->identity;
l_ptr->tolerance = b_ptr->tolerance;
+ l_ptr->snd_nxt = 1;
+ l_ptr->rcv_nxt = 1;
l_ptr->state = TIPC_LINK_RESETTING;
l_ptr->pmsg = (struct tipc_msg *)&l_ptr->proto_msg;
@@ -376,6 +378,7 @@ static int tipc_link_fsm_evt(struct tipc_link *l, int evt,
pl = node_active_link(l->owner, 0);
if (pl && link_probing(pl))
break;
+ l->state = TIPC_LINK_WORKING;
actions |= LINK_ACTIVATE;
if (!l->owner->working_links)
actions |= SND_BCAST_SYNC;
@@ -398,6 +401,7 @@ static int tipc_link_fsm_evt(struct tipc_link *l, int evt,
pl = node_active_link(l->owner, 0);
if (pl && link_probing(pl))
break;
+ l->state = TIPC_LINK_WORKING;
actions |= LINK_ACTIVATE;
if (!l->owner->working_links)
actions |= SND_BCAST_SYNC;
@@ -639,19 +643,6 @@ void tipc_link_reset(struct tipc_link *l_ptr)
link_reset_statistics(l_ptr);
}
-void tipc_link_activate(struct tipc_link *link)
-{
- struct tipc_node *node = link->owner;
-
- link->rcv_nxt = 1;
- link->stats.recv_info = 1;
- link->silent_intv_cnt = 0;
- link->state = TIPC_LINK_WORKING;
- link->exec_mode = TIPC_LINK_OPEN;
- tipc_node_link_up(node, link->bearer_id);
- tipc_bearer_add_dest(node->net, link->bearer_id, link->addr);
-}
-
/**
* __tipc_link_xmit(): same as tipc_link_xmit, but destlink is known & locked
* @link: link to use