On Mon, Nov 12, 2012 at 09:19:18AM +0200, Michael S. Tsirkin wrote: > For tap, we currently assume the vnet header size is 10 > (the default value) but that might not be the case > if tap is persistent and has been used by qemu previously. > To fix, set vnet header size correctly on open. > > Signed-off-by: Michael S. Tsirkin <m...@redhat.com> > --- > > This fixes the issue reported by Alexander Graf on the kvm forum. > Alexander, could you confirm please? > Thanks, > > net/tap-linux.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/net/tap-linux.c b/net/tap-linux.c > index c6521be..3eaedc4 100644 > --- a/net/tap-linux.c > +++ b/net/tap-linux.c > @@ -39,6 +39,7 @@ int tap_open(char *ifname, int ifname_size, int *vnet_hdr, > int vnet_hdr_required > { > struct ifreq ifr; > int fd, ret; > + int len = sizeof(struct virtio_net_hdr);
We probably want the same behavior in the tap,fd= codepath. How about a call to tap_set_vnet_hdr_len() in net_init_tap() instead? Stefan