mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-10-28 14:54:21 +00:00
62 lines
2.0 KiB
Diff
62 lines
2.0 KiB
Diff
From ee2e34b771da87dd1c2878b5b8edd335ac11ca9d Mon Sep 17 00:00:00 2001
|
|
From: Gerard Garcia <ggarcia@deic.uab.cat>
|
|
Date: Wed, 10 Aug 2016 17:24:34 +0200
|
|
Subject: [PATCH 14/44] vhost/vsock: drop space available check for TX vq
|
|
|
|
Remove unnecessary use of enable/disable callback notifications
|
|
and the incorrect more space available check.
|
|
|
|
The virtio_transport_tx_work handles when the TX virtqueue
|
|
has more buffers available.
|
|
|
|
Signed-off-by: Gerard Garcia <ggarcia@deic.uab.cat>
|
|
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
|
|
(cherry picked from commit 21bc54fc0cdc31de72b57d2b3c79cf9c2b83cf39)
|
|
---
|
|
net/vmw_vsock/virtio_transport.c | 10 +++-------
|
|
1 file changed, 3 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
|
|
index 699dfabdbccd..936d7eee62d0 100644
|
|
--- a/net/vmw_vsock/virtio_transport.c
|
|
+++ b/net/vmw_vsock/virtio_transport.c
|
|
@@ -87,9 +87,6 @@ virtio_transport_send_pkt_work(struct work_struct *work)
|
|
|
|
vq = vsock->vqs[VSOCK_VQ_TX];
|
|
|
|
- /* Avoid unnecessary interrupts while we're processing the ring */
|
|
- virtqueue_disable_cb(vq);
|
|
-
|
|
for (;;) {
|
|
struct virtio_vsock_pkt *pkt;
|
|
struct scatterlist hdr, buf, *sgs[2];
|
|
@@ -99,7 +96,6 @@ virtio_transport_send_pkt_work(struct work_struct *work)
|
|
spin_lock_bh(&vsock->send_pkt_list_lock);
|
|
if (list_empty(&vsock->send_pkt_list)) {
|
|
spin_unlock_bh(&vsock->send_pkt_list_lock);
|
|
- virtqueue_enable_cb(vq);
|
|
break;
|
|
}
|
|
|
|
@@ -118,13 +114,13 @@ virtio_transport_send_pkt_work(struct work_struct *work)
|
|
}
|
|
|
|
ret = virtqueue_add_sgs(vq, sgs, out_sg, in_sg, pkt, GFP_KERNEL);
|
|
+ /* Usually this means that there is no more space available in
|
|
+ * the vq
|
|
+ */
|
|
if (ret < 0) {
|
|
spin_lock_bh(&vsock->send_pkt_list_lock);
|
|
list_add(&pkt->list, &vsock->send_pkt_list);
|
|
spin_unlock_bh(&vsock->send_pkt_list_lock);
|
|
-
|
|
- if (!virtqueue_enable_cb(vq) && ret == -ENOSPC)
|
|
- continue; /* retry now that we have more space */
|
|
break;
|
|
}
|
|
|
|
--
|
|
2.12.2
|
|
|