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

Reply via email to