diff options
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r-- | net/tipc/link.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index b0f8646e0631..b17b9e155469 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
@@ -1032,11 +1032,17 @@ int tipc_link_retrans(struct tipc_link *l, u16 from, u16 to, | |||
1032 | static bool tipc_data_input(struct tipc_link *l, struct sk_buff *skb, | 1032 | static bool tipc_data_input(struct tipc_link *l, struct sk_buff *skb, |
1033 | struct sk_buff_head *inputq) | 1033 | struct sk_buff_head *inputq) |
1034 | { | 1034 | { |
1035 | switch (msg_user(buf_msg(skb))) { | 1035 | struct tipc_msg *hdr = buf_msg(skb); |
1036 | |||
1037 | switch (msg_user(hdr)) { | ||
1036 | case TIPC_LOW_IMPORTANCE: | 1038 | case TIPC_LOW_IMPORTANCE: |
1037 | case TIPC_MEDIUM_IMPORTANCE: | 1039 | case TIPC_MEDIUM_IMPORTANCE: |
1038 | case TIPC_HIGH_IMPORTANCE: | 1040 | case TIPC_HIGH_IMPORTANCE: |
1039 | case TIPC_CRITICAL_IMPORTANCE: | 1041 | case TIPC_CRITICAL_IMPORTANCE: |
1042 | if (unlikely(msg_type(hdr) == TIPC_MCAST_MSG)) { | ||
1043 | skb_queue_tail(l->bc_rcvlink->inputq, skb); | ||
1044 | return true; | ||
1045 | } | ||
1040 | case CONN_MANAGER: | 1046 | case CONN_MANAGER: |
1041 | skb_queue_tail(inputq, skb); | 1047 | skb_queue_tail(inputq, skb); |
1042 | return true; | 1048 | return true; |