vsock: Simplify '__vsock_release()'
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 3 Nov 2019 06:11:11 +0000 (07:11 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Nov 2019 01:55:47 +0000 (17:55 -0800)
Use 'skb_queue_purge()' instead of re-implementing it.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/vmw_vsock/af_vsock.c

index 582a3e4..c0856e7 100644 (file)
@@ -641,7 +641,6 @@ EXPORT_SYMBOL_GPL(__vsock_create);
 static void __vsock_release(struct sock *sk, int level)
 {
        if (sk) {
-               struct sk_buff *skb;
                struct sock *pending;
                struct vsock_sock *vsk;
 
@@ -662,8 +661,7 @@ static void __vsock_release(struct sock *sk, int level)
                sock_orphan(sk);
                sk->sk_shutdown = SHUTDOWN_MASK;
 
-               while ((skb = skb_dequeue(&sk->sk_receive_queue)))
-                       kfree_skb(skb);
+               skb_queue_purge(&sk->sk_receive_queue);
 
                /* Clean up any sockets that never were accepted. */
                while ((pending = vsock_dequeue_accept(sk)) != NULL) {