summaryrefslogtreecommitdiffstats
path: root/net/tipc/node.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/node.c')
-rw-r--r--net/tipc/node.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c
index 1bdcf0fc1a4d..c8f6177dd5a2 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -1444,13 +1444,14 @@ int tipc_node_xmit(struct net *net, struct sk_buff_head *list,
1444 1444
1445 if (in_own_node(net, dnode)) { 1445 if (in_own_node(net, dnode)) {
1446 tipc_loopback_trace(net, list); 1446 tipc_loopback_trace(net, list);
1447 spin_lock_init(&list->lock);
1447 tipc_sk_rcv(net, list); 1448 tipc_sk_rcv(net, list);
1448 return 0; 1449 return 0;
1449 } 1450 }
1450 1451
1451 n = tipc_node_find(net, dnode); 1452 n = tipc_node_find(net, dnode);
1452 if (unlikely(!n)) { 1453 if (unlikely(!n)) {
1453 skb_queue_purge(list); 1454 __skb_queue_purge(list);
1454 return -EHOSTUNREACH; 1455 return -EHOSTUNREACH;
1455 } 1456 }
1456 1457
@@ -1459,7 +1460,7 @@ int tipc_node_xmit(struct net *net, struct sk_buff_head *list,
1459 if (unlikely(bearer_id == INVALID_BEARER_ID)) { 1460 if (unlikely(bearer_id == INVALID_BEARER_ID)) {
1460 tipc_node_read_unlock(n); 1461 tipc_node_read_unlock(n);
1461 tipc_node_put(n); 1462 tipc_node_put(n);
1462 skb_queue_purge(list); 1463 __skb_queue_purge(list);
1463 return -EHOSTUNREACH; 1464 return -EHOSTUNREACH;
1464 } 1465 }
1465 1466
@@ -1491,7 +1492,7 @@ int tipc_node_xmit_skb(struct net *net, struct sk_buff *skb, u32 dnode,
1491{ 1492{
1492 struct sk_buff_head head; 1493 struct sk_buff_head head;
1493 1494
1494 skb_queue_head_init(&head); 1495 __skb_queue_head_init(&head);
1495 __skb_queue_tail(&head, skb); 1496 __skb_queue_tail(&head, skb);
1496 tipc_node_xmit(net, &head, dnode, selector); 1497 tipc_node_xmit(net, &head, dnode, selector);
1497 return 0; 1498 return 0;