From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58217) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGPQv-0006Vf-Ot for qemu-devel@nongnu.org; Tue, 25 Sep 2012 03:20:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TGPQg-0001SY-Ks for qemu-devel@nongnu.org; Tue, 25 Sep 2012 03:19:53 -0400 Received: from mx1.redhat.com ([209.132.183.28]:27888) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGPQg-0001SD-AN for qemu-devel@nongnu.org; Tue, 25 Sep 2012 03:19:38 -0400 Date: Tue, 25 Sep 2012 09:20:59 +0200 From: "Michael S. Tsirkin" Message-ID: <20120925072059.GA26474@redhat.com> References: <18bf1e1e31f0403aabaae66a32a04d67a9bbe7da.1348527749.git.mst@redhat.com> <50614BEB.1070907@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <50614BEB.1070907@redhat.com> Subject: Re: [Qemu-devel] [PATCH 11/14] virtio-net: fix used len for tx List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jason Wang Cc: aurelien@aurel32.net, qemu-devel@nongnu.org, Anthony Liguori , stefanha@linux.vnet.ibm.com On Tue, Sep 25, 2012 at 02:15:07PM +0800, Jason Wang wrote: > On 09/25/2012 07:05 AM, Michael S. Tsirkin wrote: > >There is no out sg for TX, so used buf length for tx > >should always be 0. > > According to the spec, the len is "Total length of the descriptor > chain which was used (written to)". Right. And with TX no bytes are written at all. > So I wonder if we need to pass > the len here, it looks useful for guest how many bytes were sent by > the driver (consider qemu may truncate the packet). I thik qemu may not truncate packet. > >Signed-off-by: Michael S. Tsirkin > >--- > > hw/virtio-net.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > >diff --git a/hw/virtio-net.c b/hw/virtio-net.c > >index 2381ee5..d9a9f8f 100644 > >--- a/hw/virtio-net.c > >+++ b/hw/virtio-net.c > >@@ -688,7 +688,7 @@ static void virtio_net_tx_complete(NetClientState *nc, ssize_t len) > > { > > VirtIONet *n = DO_UPCAST(NICState, nc, nc)->opaque; > > > >- virtqueue_push(n->tx_vq,&n->async_tx.elem, n->async_tx.len); > >+ virtqueue_push(n->tx_vq,&n->async_tx.elem, 0); > > virtio_notify(&n->vdev, n->tx_vq); > > > > n->async_tx.elem.out_num = n->async_tx.len = 0; > >@@ -754,7 +754,7 @@ static int32_t virtio_net_flush_tx(VirtIONet *n, VirtQueue *vq) > > > > len += ret; > > > >- virtqueue_push(vq,&elem, len); > >+ virtqueue_push(vq,&elem, 0); > > virtio_notify(&n->vdev, vq); > > > > if (++num_packets>= n->tx_burst) {