summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorGerard Garcia <ggarcia@deic.uab.cat>2016-08-10 17:24:34 +0200
committerMichael S. Tsirkin <mst@redhat.com>2016-08-15 05:05:21 +0300
commit21bc54fc0cdc31de72b57d2b3c79cf9c2b83cf39 (patch)
tree40451d5276f680bc34ab61a4edd3b7cf289828b6 /net
parent52012619e5a2ca0491426c3712fb9054692d4a3c (diff)
downloadop-kernel-dev-21bc54fc0cdc31de72b57d2b3c79cf9c2b83cf39.zip
op-kernel-dev-21bc54fc0cdc31de72b57d2b3c79cf9c2b83cf39.tar.gz
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>
Diffstat (limited to 'net')
-rw-r--r--net/vmw_vsock/virtio_transport.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c
index 699dfab..936d7ee 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;
}
OpenPOWER on IntegriCloud