diff options
author | Jason Wang <jasowang@redhat.com> | 2012-05-02 11:42:41 +0800 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2012-05-02 18:22:24 +0300 |
commit | c8fb217af57c6c232af3517d3115d2af4ce9900e (patch) | |
tree | c570166201d18f7672178e37b4f8fa6689ea8448 /drivers/vhost | |
parent | dbf34207c62bdec16b49721d119647c470a3443c (diff) | |
download | linux-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.c | 2 |
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); |