From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56205) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5sPl-0002Ve-Nt for qemu-devel@nongnu.org; Fri, 19 Jun 2015 05:16:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z5sPi-0006NS-JH for qemu-devel@nongnu.org; Fri, 19 Jun 2015 05:16:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34148) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z5sPi-0006NO-DB for qemu-devel@nongnu.org; Fri, 19 Jun 2015 05:16:42 -0400 Date: Fri, 19 Jun 2015 11:16:35 +0200 From: Thomas Huth Message-ID: <20150619111635.1a37f6e2@thh440s> In-Reply-To: <20150617132349.6560.80324.stgit@bahia.lab.toulouse-stg.fr.ibm.com> References: <20150617132323.6560.29432.stgit@bahia.lab.toulouse-stg.fr.ibm.com> <20150617132349.6560.80324.stgit@bahia.lab.toulouse-stg.fr.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 5/6] vhost-net: tell tap backend about the vnet endianness List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Greg Kurz Cc: Cornelia Huck , Jason Wang , qemu-devel@nongnu.org, Stefan Hajnoczi , "Michael S. Tsirkin" Hi, On Wed, 17 Jun 2015 15:23:49 +0200 Greg Kurz wrote: > The default behaviour for TAP/MACVTAP is to consider vnet as native endian. > > This patch handles the cases when this is not true: > - virtio 1.0: always little-endian > - legacy cross-endian > > Signed-off-by: Greg Kurz > --- > hw/net/vhost_net.c | 33 ++++++++++++++++++++++++++++++++- > 1 file changed, 32 insertions(+), 1 deletion(-) > > diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c > index 1c55517e3611..8cbb2f618c1c 100644 > --- a/hw/net/vhost_net.c > +++ b/hw/net/vhost_net.c ... > @@ -365,6 +394,8 @@ void vhost_net_stop(VirtIODevice *dev, NetClientState *ncs, > fflush(stderr); > } > assert(r >= 0); > + > + assert(vhost_net_set_vnet_endian(dev, ncs[0].peer, false) >= 0); > } Putting the vhost_net_set_vnet_endian() within the assert statement looks somewhat wrong to me. assert() gets defined to nothing in case NDEBUG is defined, so the call would then simply be dropped. I guess you rather want something like this here: r = vhost_net_set_vnet_endian(dev, ncs[0].peer, false); assert(r >= 0); ? Thomas