diff options
Diffstat (limited to 'net/tipc/socket.c')
-rw-r--r-- | net/tipc/socket.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c index d50edd6e0019..9a7e7b5cf23f 100644 --- a/net/tipc/socket.c +++ b/net/tipc/socket.c | |||
@@ -896,6 +896,10 @@ exit: | |||
896 | kfree_skb(skb); | 896 | kfree_skb(skb); |
897 | } | 897 | } |
898 | 898 | ||
899 | static void tipc_sk_top_evt(struct tipc_sock *tsk, struct tipc_event *evt) | ||
900 | { | ||
901 | } | ||
902 | |||
899 | /** | 903 | /** |
900 | * tipc_sendmsg - send message in connectionless manner | 904 | * tipc_sendmsg - send message in connectionless manner |
901 | * @sock: socket structure | 905 | * @sock: socket structure |
@@ -1671,20 +1675,24 @@ static bool filter_rcv(struct sock *sk, struct sk_buff *skb, | |||
1671 | struct tipc_msg *hdr = buf_msg(skb); | 1675 | struct tipc_msg *hdr = buf_msg(skb); |
1672 | unsigned int limit = rcvbuf_limit(sk, skb); | 1676 | unsigned int limit = rcvbuf_limit(sk, skb); |
1673 | int err = TIPC_OK; | 1677 | int err = TIPC_OK; |
1674 | int usr = msg_user(hdr); | ||
1675 | u32 onode; | ||
1676 | |||
1677 | if (unlikely(msg_user(hdr) == CONN_MANAGER)) { | ||
1678 | tipc_sk_proto_rcv(tsk, skb, xmitq); | ||
1679 | return false; | ||
1680 | } | ||
1681 | 1678 | ||
1682 | if (unlikely(usr == SOCK_WAKEUP)) { | 1679 | if (unlikely(!msg_isdata(hdr))) { |
1683 | onode = msg_orignode(hdr); | 1680 | switch (msg_user(hdr)) { |
1681 | case CONN_MANAGER: | ||
1682 | tipc_sk_proto_rcv(tsk, skb, xmitq); | ||
1683 | return false; | ||
1684 | case SOCK_WAKEUP: | ||
1685 | u32_del(&tsk->cong_links, msg_orignode(hdr)); | ||
1686 | tsk->cong_link_cnt--; | ||
1687 | sk->sk_write_space(sk); | ||
1688 | break; | ||
1689 | case TOP_SRV: | ||
1690 | tipc_sk_top_evt(tsk, (void *)msg_data(hdr)); | ||
1691 | break; | ||
1692 | default: | ||
1693 | break; | ||
1694 | } | ||
1684 | kfree_skb(skb); | 1695 | kfree_skb(skb); |
1685 | u32_del(&tsk->cong_links, onode); | ||
1686 | tsk->cong_link_cnt--; | ||
1687 | sk->sk_write_space(sk); | ||
1688 | return false; | 1696 | return false; |
1689 | } | 1697 | } |
1690 | 1698 | ||