From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:46619) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGON0-0001F1-5y for qemu-devel@nongnu.org; Tue, 25 Sep 2012 02:11:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TGOMz-0003mu-6l for qemu-devel@nongnu.org; Tue, 25 Sep 2012 02:11:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50564) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TGOMy-0003mf-Uf for qemu-devel@nongnu.org; Tue, 25 Sep 2012 02:11:45 -0400 Message-ID: <50614BEB.1070907@redhat.com> Date: Tue, 25 Sep 2012 14:15:07 +0800 From: Jason Wang MIME-Version: 1.0 References: <18bf1e1e31f0403aabaae66a32a04d67a9bbe7da.1348527749.git.mst@redhat.com> In-Reply-To: <18bf1e1e31f0403aabaae66a32a04d67a9bbe7da.1348527749.git.mst@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit 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: "Michael S. Tsirkin" Cc: aurelien@aurel32.net, qemu-devel@nongnu.org, Anthony Liguori , stefanha@linux.vnet.ibm.com 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)". 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). > 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) {