|
|
@@ -1039,6 +1039,7 @@ int tipc_link_retrans(struct tipc_link *l, struct tipc_link *nacker,
|
|
|
static bool tipc_data_input(struct tipc_link *l, struct sk_buff *skb,
|
|
|
struct sk_buff_head *inputq)
|
|
|
{
|
|
|
+ struct sk_buff_head *mc_inputq = l->bc_rcvlink->inputq;
|
|
|
struct tipc_msg *hdr = buf_msg(skb);
|
|
|
|
|
|
switch (msg_user(hdr)) {
|
|
|
@@ -1047,12 +1048,14 @@ static bool tipc_data_input(struct tipc_link *l, struct sk_buff *skb,
|
|
|
case TIPC_HIGH_IMPORTANCE:
|
|
|
case TIPC_CRITICAL_IMPORTANCE:
|
|
|
if (unlikely(msg_in_group(hdr) || msg_mcast(hdr))) {
|
|
|
- skb_queue_tail(l->bc_rcvlink->inputq, skb);
|
|
|
+ skb_queue_tail(mc_inputq, skb);
|
|
|
return true;
|
|
|
}
|
|
|
- case GROUP_PROTOCOL:
|
|
|
case CONN_MANAGER:
|
|
|
return true;
|
|
|
+ case GROUP_PROTOCOL:
|
|
|
+ skb_queue_tail(mc_inputq, skb);
|
|
|
+ return true;
|
|
|
case NAME_DISTRIBUTOR:
|
|
|
l->bc_rcvlink->state = LINK_ESTABLISHED;
|
|
|
skb_queue_tail(l->namedq, skb);
|