qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCHv2] tap: reset vnet header size on open


From: Alexander Graf
Subject: Re: [Qemu-devel] [PATCHv2] tap: reset vnet header size on open
Date: Mon, 19 Nov 2012 18:26:06 +0100

On 13.11.2012, at 11:23, 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 host header size in tap device on open.
> 
> Signed-off-by: Michael S. Tsirkin <address@hidden>
> ---
> 
> This fixes the issue reported by Alexander Graf on the kvm forum.
> Alexander, could you confirm please?

Yup, works for me :).

Tested-by: Alexander Graf <address@hidden>


Alex

> Thanks,
> 
> net/tap.c | 7 +++++++
> 1 file changed, 7 insertions(+)
> 
> diff --git a/net/tap.c b/net/tap.c
> index df89caa..1abfd44 100644
> --- a/net/tap.c
> +++ b/net/tap.c
> @@ -341,6 +341,13 @@ static TAPState *net_tap_fd_init(NetClientState *peer,
>     s->using_vnet_hdr = 0;
>     s->has_ufo = tap_probe_has_ufo(s->fd);
>     tap_set_offload(&s->nc, 0, 0, 0, 0, 0);
> +    /*
> +     * Make sure host header length is set correctly in tap:
> +     * it might have been modified by another instance of qemu.
> +     */
> +    if (tap_probe_vnet_hdr_len(s->fd, s->host_vnet_hdr_len)) {
> +        tap_fd_set_vnet_hdr_len(s->fd, s->host_vnet_hdr_len);
> +    }
>     tap_read_poll(s, 1);
>     s->vhost_net = NULL;
>     return s;
> -- 
> MST




reply via email to

[Prev in Thread] Current Thread [Next in Thread]