diff options
author | David S. Miller <davem@davemloft.net> | 2016-02-23 00:09:14 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-02-23 00:09:14 -0500 |
commit | b633353115e352d3c31c12d4c61978c810f05ea1 (patch) | |
tree | 055174a1b31a3e10fd2c505788fe6487b0028d00 /net/tipc | |
parent | b1d95ae5c5bd3deba84d00c4f83d7d0836b5936f (diff) | |
parent | dea08e604408d0303e2332896c5fdd8c1f7d79a2 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
drivers/net/phy/bcm7xxx.c
drivers/net/phy/marvell.c
drivers/net/vxlan.c
All three conflicts were cases of simple overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r-- | net/tipc/link.c | 4 | ||||
-rw-r--r-- | net/tipc/node.c | 12 |
2 files changed, 9 insertions, 7 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index 3e513daecf80..e31d92f80572 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
@@ -1962,8 +1962,10 @@ int tipc_nl_add_bc_link(struct net *net, struct tipc_nl_msg *msg) | |||
1962 | 1962 | ||
1963 | hdr = genlmsg_put(msg->skb, msg->portid, msg->seq, &tipc_genl_family, | 1963 | hdr = genlmsg_put(msg->skb, msg->portid, msg->seq, &tipc_genl_family, |
1964 | NLM_F_MULTI, TIPC_NL_LINK_GET); | 1964 | NLM_F_MULTI, TIPC_NL_LINK_GET); |
1965 | if (!hdr) | 1965 | if (!hdr) { |
1966 | tipc_bcast_unlock(net); | ||
1966 | return -EMSGSIZE; | 1967 | return -EMSGSIZE; |
1968 | } | ||
1967 | 1969 | ||
1968 | attrs = nla_nest_start(msg->skb, TIPC_NLA_LINK); | 1970 | attrs = nla_nest_start(msg->skb, TIPC_NLA_LINK); |
1969 | if (!attrs) | 1971 | if (!attrs) |
diff --git a/net/tipc/node.c b/net/tipc/node.c index 10a1e8717c6f..9fcc2fb0ee00 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -346,12 +346,6 @@ struct tipc_node *tipc_node_create(struct net *net, u32 addr, u16 capabilities) | |||
346 | skb_queue_head_init(&n->bc_entry.inputq2); | 346 | skb_queue_head_init(&n->bc_entry.inputq2); |
347 | for (i = 0; i < MAX_BEARERS; i++) | 347 | for (i = 0; i < MAX_BEARERS; i++) |
348 | spin_lock_init(&n->links[i].lock); | 348 | spin_lock_init(&n->links[i].lock); |
349 | hlist_add_head_rcu(&n->hash, &tn->node_htable[tipc_hashfn(addr)]); | ||
350 | list_for_each_entry_rcu(temp_node, &tn->node_list, list) { | ||
351 | if (n->addr < temp_node->addr) | ||
352 | break; | ||
353 | } | ||
354 | list_add_tail_rcu(&n->list, &temp_node->list); | ||
355 | n->state = SELF_DOWN_PEER_LEAVING; | 349 | n->state = SELF_DOWN_PEER_LEAVING; |
356 | n->signature = INVALID_NODE_SIG; | 350 | n->signature = INVALID_NODE_SIG; |
357 | n->active_links[0] = INVALID_BEARER_ID; | 351 | n->active_links[0] = INVALID_BEARER_ID; |
@@ -372,6 +366,12 @@ struct tipc_node *tipc_node_create(struct net *net, u32 addr, u16 capabilities) | |||
372 | tipc_node_get(n); | 366 | tipc_node_get(n); |
373 | setup_timer(&n->timer, tipc_node_timeout, (unsigned long)n); | 367 | setup_timer(&n->timer, tipc_node_timeout, (unsigned long)n); |
374 | n->keepalive_intv = U32_MAX; | 368 | n->keepalive_intv = U32_MAX; |
369 | hlist_add_head_rcu(&n->hash, &tn->node_htable[tipc_hashfn(addr)]); | ||
370 | list_for_each_entry_rcu(temp_node, &tn->node_list, list) { | ||
371 | if (n->addr < temp_node->addr) | ||
372 | break; | ||
373 | } | ||
374 | list_add_tail_rcu(&n->list, &temp_node->list); | ||
375 | exit: | 375 | exit: |
376 | spin_unlock_bh(&tn->node_list_lock); | 376 | spin_unlock_bh(&tn->node_list_lock); |
377 | return n; | 377 | return n; |