From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46823) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W3jGp-0005bA-IC for qemu-devel@nongnu.org; Thu, 16 Jan 2014 04:29:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W3jGi-0000XO-Ho for qemu-devel@nongnu.org; Thu, 16 Jan 2014 04:29:51 -0500 Received: from mx1.redhat.com ([209.132.183.28]:24563) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W3jGi-0000XB-9q for qemu-devel@nongnu.org; Thu, 16 Jan 2014 04:29:44 -0500 Date: Thu, 16 Jan 2014 11:29:34 +0200 From: "Michael S. Tsirkin" Message-ID: <20140116092933.GA21761@redhat.com> References: <1389697190-6198-1-git-send-email-v.maffione@gmail.com> <1389697190-6198-3-git-send-email-v.maffione@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1389697190-6198-3-git-send-email-v.maffione@gmail.com> Subject: Re: [Qemu-devel] [PATCH v2 2/6] net: removing tap_using_vnet_hdr() function List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Vincenzo Maffione Cc: aliguori@amazon.com, marcel.a@redhat.com, jasowang@redhat.com, qemu-devel@nongnu.org, lcapitulino@redhat.com, stefanha@redhat.com, dmitry@daynix.com, pbonzini@redhat.com, g.lettieri@iet.unipi.it, rizzo@iet.unipi.it On Tue, Jan 14, 2014 at 11:59:46AM +0100, Vincenzo Maffione wrote: > This function was used to set the using_vnet_hdr field into the > TAPState struct. However, it is always called immediately before > (see virtio-net.c) or immediately after (see vmxnet3.c) the function > tap_set_vnet_hdr_len(). It's therefore possible to set the > using_vnet_hdr field directly in tap_set_vnet_hdr_len() and remove > tap_using_vnet_hdr(), making the code simpler. > > Signed-off-by: Vincenzo Maffione virtio net only calls tap_set_vnet_hdr_len if tap_has_vnet_hdr_len returns true. I think this patch will break old linux hosts which don't support modifying vnet_hdr_len. Also, the current API is quite ugly, but I don't think adding side effects to tap_set_vnet_hdr_len is an improvement. > --- > hw/net/virtio-net.c | 4 ---- > hw/net/vmxnet3.c | 2 -- > include/net/tap.h | 1 - > net/tap-win32.c | 4 ---- > net/tap.c | 11 +---------- > 5 files changed, 1 insertion(+), 21 deletions(-) > > diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c > index 3626608..ac8322d 100644 > --- a/hw/net/virtio-net.c > +++ b/hw/net/virtio-net.c > @@ -1496,7 +1496,6 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp) > VirtIODevice *vdev = VIRTIO_DEVICE(dev); > VirtIONet *n = VIRTIO_NET(dev); > NetClientState *nc; > - int i; > > virtio_init(vdev, "virtio-net", VIRTIO_ID_NET, n->config_size); > > @@ -1543,9 +1542,6 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp) > > peer_test_vnet_hdr(n); > if (peer_has_vnet_hdr(n)) { > - for (i = 0; i < n->max_queues; i++) { > - tap_using_vnet_hdr(qemu_get_subqueue(n->nic, i)->peer, true); > - } > n->host_hdr_len = sizeof(struct virtio_net_hdr); > } else { > n->host_hdr_len = 0; > diff --git a/hw/net/vmxnet3.c b/hw/net/vmxnet3.c > index 19687aa..096b598 100644 > --- a/hw/net/vmxnet3.c > +++ b/hw/net/vmxnet3.c > @@ -1937,8 +1937,6 @@ static void vmxnet3_net_init(VMXNET3State *s) > if (s->peer_has_vhdr) { > tap_set_vnet_hdr_len(qemu_get_queue(s->nic)->peer, > sizeof(struct virtio_net_hdr)); > - > - tap_using_vnet_hdr(qemu_get_queue(s->nic)->peer, 1); > } > > qemu_format_nic_info_str(qemu_get_queue(s->nic), s->conf.macaddr.a); > diff --git a/include/net/tap.h b/include/net/tap.h > index a3490a9..54974dc 100644 > --- a/include/net/tap.h > +++ b/include/net/tap.h > @@ -32,7 +32,6 @@ > bool tap_has_ufo(NetClientState *nc); > bool tap_has_vnet_hdr(NetClientState *nc); > bool tap_has_vnet_hdr_len(NetClientState *nc, int len); > -void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr); > void tap_set_offload(NetClientState *nc, int csum, int tso4, int tso6, int ecn, int ufo); > void tap_set_vnet_hdr_len(NetClientState *nc, int len); > int tap_enable(NetClientState *nc); > diff --git a/net/tap-win32.c b/net/tap-win32.c > index edf26c4..f4cd002 100644 > --- a/net/tap-win32.c > +++ b/net/tap-win32.c > @@ -741,10 +741,6 @@ void tap_fd_set_vnet_hdr_len(int fd, int len) > { > } > > -void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr) > -{ > -} > - > void tap_set_offload(NetClientState *nc, int csum, int tso4, > int tso6, int ecn, int ufo) > { > diff --git a/net/tap.c b/net/tap.c > index c805f3c..42f768c 100644 > --- a/net/tap.c > +++ b/net/tap.c > @@ -247,16 +247,7 @@ void tap_set_vnet_hdr_len(NetClientState *nc, int len) > > tap_fd_set_vnet_hdr_len(s->fd, len); > s->host_vnet_hdr_len = len; > -} > - > -void tap_using_vnet_hdr(NetClientState *nc, bool using_vnet_hdr) > -{ > - TAPState *s = DO_UPCAST(TAPState, nc, nc); > - > - assert(nc->info->type == NET_CLIENT_OPTIONS_KIND_TAP); > - assert(!!s->host_vnet_hdr_len == using_vnet_hdr); > - > - s->using_vnet_hdr = using_vnet_hdr; > + s->using_vnet_hdr = true; > } > > void tap_set_offload(NetClientState *nc, int csum, int tso4, > -- > 1.8.5.2 >