diff options
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r-- | net/tipc/node.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index cfdbaf479fd1..1cdb176798f7 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
@@ -363,6 +363,8 @@ static struct tipc_node *tipc_node_create(struct net *net, u32 addr, | |||
363 | { | 363 | { |
364 | struct tipc_net *tn = net_generic(net, tipc_net_id); | 364 | struct tipc_net *tn = net_generic(net, tipc_net_id); |
365 | struct tipc_node *n, *temp_node; | 365 | struct tipc_node *n, *temp_node; |
366 | struct tipc_link *l; | ||
367 | int bearer_id; | ||
366 | int i; | 368 | int i; |
367 | 369 | ||
368 | spin_lock_bh(&tn->node_list_lock); | 370 | spin_lock_bh(&tn->node_list_lock); |
@@ -370,6 +372,11 @@ static struct tipc_node *tipc_node_create(struct net *net, u32 addr, | |||
370 | if (n) { | 372 | if (n) { |
371 | /* Same node may come back with new capabilities */ | 373 | /* Same node may come back with new capabilities */ |
372 | n->capabilities = capabilities; | 374 | n->capabilities = capabilities; |
375 | for (bearer_id = 0; bearer_id < MAX_BEARERS; bearer_id++) { | ||
376 | l = n->links[bearer_id].link; | ||
377 | if (l) | ||
378 | tipc_link_update_caps(l, capabilities); | ||
379 | } | ||
373 | goto exit; | 380 | goto exit; |
374 | } | 381 | } |
375 | n = kzalloc(sizeof(*n), GFP_ATOMIC); | 382 | n = kzalloc(sizeof(*n), GFP_ATOMIC); |