diff options
| author | David S. Miller <[email protected]> | 2016-07-23 23:31:37 +0000 |
|---|---|---|
| committer | David S. Miller <[email protected]> | 2016-07-24 04:53:32 +0000 |
| commit | de0ba9a0d8909996f9e293d311c2cc459fa77d67 (patch) | |
| tree | 199214afc477824bf431d11d08834ff7555c994b /net/tipc/link.c | |
| parent | Merge branch 'macsec-gro' (diff) | |
| parent | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net (diff) | |
| download | kernel-de0ba9a0d8909996f9e293d311c2cc459fa77d67.tar.gz kernel-de0ba9a0d8909996f9e293d311c2cc459fa77d67.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Just several instances of overlapping changes.
Signed-off-by: David S. Miller <[email protected]>
Diffstat (limited to 'net/tipc/link.c')
| -rw-r--r-- | net/tipc/link.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index c1df33f878b2..877d94f34814 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c @@ -350,6 +350,8 @@ void tipc_link_remove_bc_peer(struct tipc_link *snd_l, u16 ack = snd_l->snd_nxt - 1; snd_l->ackers--; + rcv_l->bc_peer_is_up = true; + rcv_l->state = LINK_ESTABLISHED; tipc_link_bc_ack_rcv(rcv_l, ack, xmitq); tipc_link_reset(rcv_l); rcv_l->state = LINK_RESET; @@ -1582,7 +1584,12 @@ void tipc_link_bc_sync_rcv(struct tipc_link *l, struct tipc_msg *hdr, if (!msg_peer_node_is_up(hdr)) return; - l->bc_peer_is_up = true; + /* Open when peer ackowledges our bcast init msg (pkt #1) */ + if (msg_ack(hdr)) + l->bc_peer_is_up = true; + + if (!l->bc_peer_is_up) + return; /* Ignore if peers_snd_nxt goes beyond receive window */ if (more(peers_snd_nxt, l->rcv_nxt + l->window)) |
