aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/tipc/socket.c17
1 files changed, 2 insertions, 15 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index 9b4e4833a484..f6ceecd44749 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -129,19 +129,6 @@ static void advance_rx_queue(struct sock *sk)
129} 129}
130 130
131/** 131/**
132 * discard_rx_queue - discard all buffers in socket receive queue
133 *
134 * Caller must hold socket lock
135 */
136static void discard_rx_queue(struct sock *sk)
137{
138 struct sk_buff *buf;
139
140 while ((buf = __skb_dequeue(&sk->sk_receive_queue)))
141 kfree_skb(buf);
142}
143
144/**
145 * reject_rx_queue - reject all buffers in socket receive queue 132 * reject_rx_queue - reject all buffers in socket receive queue
146 * 133 *
147 * Caller must hold socket lock 134 * Caller must hold socket lock
@@ -292,7 +279,7 @@ static int release(struct socket *sock)
292 res = tipc_deleteport(tport->ref); 279 res = tipc_deleteport(tport->ref);
293 280
294 /* Discard any remaining (connection-based) messages in receive queue */ 281 /* Discard any remaining (connection-based) messages in receive queue */
295 discard_rx_queue(sk); 282 __skb_queue_purge(&sk->sk_receive_queue);
296 283
297 /* Reject any messages that accumulated in backlog queue */ 284 /* Reject any messages that accumulated in backlog queue */
298 sock->state = SS_DISCONNECTING; 285 sock->state = SS_DISCONNECTING;
@@ -1637,7 +1624,7 @@ restart:
1637 case SS_DISCONNECTING: 1624 case SS_DISCONNECTING:
1638 1625
1639 /* Discard any unreceived messages */ 1626 /* Discard any unreceived messages */
1640 discard_rx_queue(sk); 1627 __skb_queue_purge(&sk->sk_receive_queue);
1641 1628
1642 /* Wake up anyone sleeping in poll */ 1629 /* Wake up anyone sleeping in poll */
1643 sk->sk_state_change(sk); 1630 sk->sk_state_change(sk);