vsock/loopback: don't disable irqs for queue access
authorArseniy Krasnov <avkrasnov@sberdevices.ru>
Thu, 13 Apr 2023 09:17:19 +0000 (12:17 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Apr 2023 10:04:04 +0000 (11:04 +0100)
This replaces 'skb_queue_tail()' with 'virtio_vsock_skb_queue_tail()'.
The first one uses 'spin_lock_irqsave()', second uses 'spin_lock_bh()'.
There is no need to disable interrupts in the loopback transport as
there is no access to the queue with skbs from interrupt context. Both
virtio and vhost transports work in the same way.

Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/vmw_vsock/vsock_loopback.c

index e3afc0c866f550da37e6f4b01d5b824a64efe702..5c6360df1f313739aa3726580156c4d004c7011d 100644 (file)
@@ -31,8 +31,7 @@ static int vsock_loopback_send_pkt(struct sk_buff *skb)
        struct vsock_loopback *vsock = &the_vsock_loopback;
        int len = skb->len;
 
-       skb_queue_tail(&vsock->pkt_queue, skb);
-
+       virtio_vsock_skb_queue_tail(&vsock->pkt_queue, skb);
        queue_work(vsock->workqueue, &vsock->pkt_work);
 
        return len;