Parthasarathy Bhuvaragan e7eb058238 tipc: queue socket protocol error messages into socket receive buffer
In tipc_sk_filter_rcv(), when we detect protocol messages with error we
call tipc_sk_conn_proto_rcv() and let it reset the connection and notify
the socket by calling sk->sk_state_change().

However, tipc_sk_filter_rcv() may have been called from the function
tipc_backlog_rcv(), in which case the socket lock is held and the socket
already awake. This means that the sk_state_change() call is ignored and
the error notification lost. Now the receive queue will remain empty and
the socket sleeps forever.

In this commit, we convert the protocol message into a connection abort
message and enqueue it into the socket's receive queue. By this addition
to the above state change we cover all conditions.

Acked-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-10-10 22:56:07 -07:00
..
2018-07-24 14:10:42 -07:00
2018-07-30 09:10:25 -07:00
2018-08-27 15:24:33 -07:00
2018-08-13 20:45:49 -07:00
2018-09-24 12:19:27 -07:00
2018-10-04 21:45:16 -07:00
2018-10-03 09:33:13 -07:00
2018-08-23 16:03:58 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:42 -07:00
2018-07-24 14:10:43 -07:00