diff options
Diffstat (limited to 'net/tipc/bcast.c')
| -rw-r--r-- | net/tipc/bcast.c | 14 | 
1 files changed, 8 insertions, 6 deletions
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c index 1336f3cdad38..6ef1abdd525f 100644 --- a/net/tipc/bcast.c +++ b/net/tipc/bcast.c @@ -185,7 +185,7 @@ static void tipc_bcbase_xmit(struct net *net, struct sk_buff_head *xmitq)  	}  	/* We have to transmit across all bearers */ -	skb_queue_head_init(&_xmitq); +	__skb_queue_head_init(&_xmitq);  	for (bearer_id = 0; bearer_id < MAX_BEARERS; bearer_id++) {  		if (!bb->dests[bearer_id])  			continue; @@ -256,7 +256,7 @@ static int tipc_bcast_xmit(struct net *net, struct sk_buff_head *pkts,  	struct sk_buff_head xmitq;  	int rc = 0; -	skb_queue_head_init(&xmitq); +	__skb_queue_head_init(&xmitq);  	tipc_bcast_lock(net);  	if (tipc_link_bc_peers(l))  		rc = tipc_link_xmit(l, pkts, &xmitq); @@ -286,7 +286,7 @@ static int tipc_rcast_xmit(struct net *net, struct sk_buff_head *pkts,  	u32 dnode, selector;  	selector = msg_link_selector(buf_msg(skb_peek(pkts))); -	skb_queue_head_init(&_pkts); +	__skb_queue_head_init(&_pkts);  	list_for_each_entry_safe(dst, tmp, &dests->list, list) {  		dnode = dst->node; @@ -344,7 +344,7 @@ static int tipc_mcast_send_sync(struct net *net, struct sk_buff *skb,  	msg_set_size(_hdr, MCAST_H_SIZE);  	msg_set_is_rcast(_hdr, !msg_is_rcast(hdr)); -	skb_queue_head_init(&tmpq); +	__skb_queue_head_init(&tmpq);  	__skb_queue_tail(&tmpq, _skb);  	if (method->rcast)  		tipc_bcast_xmit(net, &tmpq, cong_link_cnt); @@ -378,7 +378,7 @@ int tipc_mcast_xmit(struct net *net, struct sk_buff_head *pkts,  	int rc = 0;  	skb_queue_head_init(&inputq); -	skb_queue_head_init(&localq); +	__skb_queue_head_init(&localq);  	/* Clone packets before they are consumed by next call */  	if (dests->local && !tipc_msg_reassemble(pkts, &localq)) { @@ -406,8 +406,10 @@ int tipc_mcast_xmit(struct net *net, struct sk_buff_head *pkts,  			rc = tipc_bcast_xmit(net, pkts, cong_link_cnt);  	} -	if (dests->local) +	if (dests->local) { +		tipc_loopback_trace(net, &localq);  		tipc_sk_mcast_rcv(net, &localq, &inputq); +	}  exit:  	/* This queue should normally be empty by now */  	__skb_queue_purge(pkts);  |