diff options
author | David S. Miller <davem@davemloft.net> | 2018-11-11 17:57:54 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-11-11 17:57:54 -0800 |
commit | 2b9b7502dfcb6169dbf3359702953bf756b4e273 (patch) | |
tree | 58ab22096d49de6a0e049cf1267edc34b82916dc /net/tipc/link.c | |
parent | 9206eb0bc5679d06d2f54b9db86fe2b9a55e07e4 (diff) | |
parent | ccda4af0f4b92f7b4c308d3acc262f4a7e3affad (diff) | |
download | linux-2b9b7502dfcb6169dbf3359702953bf756b4e273.tar.gz linux-2b9b7502dfcb6169dbf3359702953bf756b4e273.tar.bz2 linux-2b9b7502dfcb6169dbf3359702953bf756b4e273.zip |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r-- | net/tipc/link.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index aefb5b40c535..9e265eb89726 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c @@ -1598,14 +1598,17 @@ static int tipc_link_proto_rcv(struct tipc_link *l, struct sk_buff *skb, if (in_range(peers_prio, l->priority + 1, TIPC_MAX_LINK_PRI)) l->priority = peers_prio; - /* ACTIVATE_MSG serves as PEER_RESET if link is already down */ - if (msg_peer_stopping(hdr)) + /* If peer is going down we want full re-establish cycle */ + if (msg_peer_stopping(hdr)) { rc = tipc_link_fsm_evt(l, LINK_FAILURE_EVT); - else if ((mtyp == RESET_MSG) || !link_is_up(l)) + break; + } + /* ACTIVATE_MSG serves as PEER_RESET if link is already down */ + if (mtyp == RESET_MSG || !link_is_up(l)) rc = tipc_link_fsm_evt(l, LINK_PEER_RESET_EVT); /* ACTIVATE_MSG takes up link if it was already locally reset */ - if ((mtyp == ACTIVATE_MSG) && (l->state == LINK_ESTABLISHING)) + if (mtyp == ACTIVATE_MSG && l->state == LINK_ESTABLISHING) rc = TIPC_LINK_UP_EVT; l->peer_session = msg_session(hdr); |