summaryrefslogtreecommitdiffstats
path: root/drivers/vhost
diff options
context:
space:
mode:
authorJason Wang <jasowang@redhat.com>2012-05-02 11:42:41 +0800
committerMichael S. Tsirkin <mst@redhat.com>2012-05-02 18:22:24 +0300
commitc8fb217af57c6c232af3517d3115d2af4ce9900e (patch)
treec570166201d18f7672178e37b4f8fa6689ea8448 /drivers/vhost
parentdbf34207c62bdec16b49721d119647c470a3443c (diff)
downloadlinux-stable-c8fb217af57c6c232af3517d3115d2af4ce9900e.tar.gz
linux-stable-c8fb217af57c6c232af3517d3115d2af4ce9900e.tar.bz2
linux-stable-c8fb217af57c6c232af3517d3115d2af4ce9900e.zip
vhost_net: zerocopy: adding and signalling immediately when fully copied
When a packet were fully copied in zerocopy, we don't wait for the DMA done to mark the done flag, so after the packet were passed to lower device, we need to add used and signal guest immediately. Signed-off-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Diffstat (limited to 'drivers/vhost')
-rw-r--r--drivers/vhost/net.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index f54b1d5fc234..853db7a08a26 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -266,6 +266,8 @@ static void handle_tx(struct vhost_net *net)
" len %d != %zd\n", err, len);
if (!zcopy)
vhost_add_used_and_signal(&net->dev, vq, head, 0);
+ else
+ vhost_zerocopy_signal_used(vq);
total_len += len;
if (unlikely(total_len >= VHOST_NET_WEIGHT)) {
vhost_poll_queue(&vq->poll);