[Top][All Lists]
[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