diff options
author | David S. Miller <davem@davemloft.net> | 2016-07-23 19:31:37 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-07-24 00:53:32 -0400 |
commit | de0ba9a0d8909996f9e293d311c2cc459fa77d67 (patch) | |
tree | 199214afc477824bf431d11d08834ff7555c994b /net/tipc/node.c | |
parent | d95a93a9b71677a43f967a1b7986decab84b7765 (diff) | |
parent | 107df03203bb66de56e2caec3bde6d22b55480c5 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Just several instances of overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index a3fc0a3f4077..95cc78b51532 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -1297,10 +1297,6 @@ static void tipc_node_bc_rcv(struct net *net, struct sk_buff *skb, int bearer_id | |||
1297 | 1297 | ||
1298 | rc = tipc_bcast_rcv(net, be->link, skb); | 1298 | rc = tipc_bcast_rcv(net, be->link, skb); |
1299 | 1299 | ||
1300 | /* Broadcast link reset may happen at reassembly failure */ | ||
1301 | if (rc & TIPC_LINK_DOWN_EVT) | ||
1302 | tipc_node_reset_links(n); | ||
1303 | |||
1304 | /* Broadcast ACKs are sent on a unicast link */ | 1300 | /* Broadcast ACKs are sent on a unicast link */ |
1305 | if (rc & TIPC_LINK_SND_BC_ACK) { | 1301 | if (rc & TIPC_LINK_SND_BC_ACK) { |
1306 | tipc_node_read_lock(n); | 1302 | tipc_node_read_lock(n); |
@@ -1320,6 +1316,17 @@ static void tipc_node_bc_rcv(struct net *net, struct sk_buff *skb, int bearer_id | |||
1320 | spin_unlock_bh(&be->inputq2.lock); | 1316 | spin_unlock_bh(&be->inputq2.lock); |
1321 | tipc_sk_mcast_rcv(net, &be->arrvq, &be->inputq2); | 1317 | tipc_sk_mcast_rcv(net, &be->arrvq, &be->inputq2); |
1322 | } | 1318 | } |
1319 | |||
1320 | if (rc & TIPC_LINK_DOWN_EVT) { | ||
1321 | /* Reception reassembly failure => reset all links to peer */ | ||
1322 | if (!tipc_link_is_up(be->link)) | ||
1323 | tipc_node_reset_links(n); | ||
1324 | |||
1325 | /* Retransmission failure => reset all links to all peers */ | ||
1326 | if (!tipc_link_is_up(tipc_bc_sndlink(net))) | ||
1327 | tipc_bearer_reset_all(net); | ||
1328 | } | ||
1329 | |||
1323 | tipc_node_put(n); | 1330 | tipc_node_put(n); |
1324 | } | 1331 | } |
1325 | 1332 | ||