On 10/14/2015 05:26 PM, Michael S. Tsirkin wrote: > commit 5be7d9f1b1452613b95c6ba70b8d7ad3d0797991 > vhost-net: tell tap backend about the vnet endianness > makes vhost net always try to set LE - even if that matches the > native endian-ness. > > This makes it fail on older kernels on x86 without TUNSETVNETLE support. > > To fix, make qemu_set_vnet_le/qemu_set_vnet_be skip the > ioctl if it matches the host endian-ness. > > Reported-by: Marcel Apfelbaum <mar...@redhat.com> > Cc: Greg Kurz <gk...@linux.vnet.ibm.com> > Cc: qemu-sta...@nongnu.org > Signed-off-by: Michael S. Tsirkin <m...@redhat.com>
Acked-by: Jason Wang <jasow...@redhat.com> > --- > net/net.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/net/net.c b/net/net.c > index 28a5597..8e96011 100644 > --- a/net/net.c > +++ b/net/net.c > @@ -517,20 +517,28 @@ void qemu_set_vnet_hdr_len(NetClientState *nc, int len) > > int qemu_set_vnet_le(NetClientState *nc, bool is_le) > { > +#ifdef HOST_WORDS_BIGENDIAN > if (!nc || !nc->info->set_vnet_le) { > return -ENOSYS; > } > > return nc->info->set_vnet_le(nc, is_le); > +#else > + return 0; > +#endif > } > > int qemu_set_vnet_be(NetClientState *nc, bool is_be) > { > +#ifdef HOST_WORDS_BIGENDIAN > + return 0; > +#else > if (!nc || !nc->info->set_vnet_be) { > return -ENOSYS; > } > > return nc->info->set_vnet_be(nc, is_be); > +#endif > } > > int qemu_can_send_packet(NetClientState *sender)