diff options
Diffstat (limited to 'net/tipc/node.c')
| -rw-r--r-- | net/tipc/node.c | 13 | 
1 files changed, 7 insertions, 6 deletions
| diff --git a/net/tipc/node.c b/net/tipc/node.c index 9947b7dfe1d2..6ef95ce565bd 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c @@ -403,7 +403,7 @@ static void tipc_node_write_unlock(struct tipc_node *n)  	u32 flags = n->action_flags;  	struct list_head *publ_list;  	struct tipc_uaddr ua; -	u32 bearer_id; +	u32 bearer_id, node;  	if (likely(!flags)) {  		write_unlock_bh(&n->lock); @@ -413,7 +413,8 @@ static void tipc_node_write_unlock(struct tipc_node *n)  	tipc_uaddr(&ua, TIPC_SERVICE_RANGE, TIPC_NODE_SCOPE,  		   TIPC_LINK_STATE, n->addr, n->addr);  	sk.ref = n->link_id; -	sk.node = n->addr; +	sk.node = tipc_own_addr(net); +	node = n->addr;  	bearer_id = n->link_id & 0xffff;  	publ_list = &n->publ_list; @@ -423,17 +424,17 @@ static void tipc_node_write_unlock(struct tipc_node *n)  	write_unlock_bh(&n->lock);  	if (flags & TIPC_NOTIFY_NODE_DOWN) -		tipc_publ_notify(net, publ_list, sk.node, n->capabilities); +		tipc_publ_notify(net, publ_list, node, n->capabilities);  	if (flags & TIPC_NOTIFY_NODE_UP) -		tipc_named_node_up(net, sk.node, n->capabilities); +		tipc_named_node_up(net, node, n->capabilities);  	if (flags & TIPC_NOTIFY_LINK_UP) { -		tipc_mon_peer_up(net, sk.node, bearer_id); +		tipc_mon_peer_up(net, node, bearer_id);  		tipc_nametbl_publish(net, &ua, &sk, sk.ref);  	}  	if (flags & TIPC_NOTIFY_LINK_DOWN) { -		tipc_mon_peer_down(net, sk.node, bearer_id); +		tipc_mon_peer_down(net, node, bearer_id);  		tipc_nametbl_withdraw(net, &ua, &sk, sk.ref);  	}  } |