All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark McLoughlin <markmc@redhat.com>
To: Pierre Riteau <Pierre.Riteau@irisa.fr>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: [PATCH] Fix TAP networking on host kernels without IFF_VNET_HDR support
Date: Tue, 24 Nov 2009 11:22:52 +0000	[thread overview]
Message-ID: <1259061772.8935.29.camel@blaa> (raw)
In-Reply-To: <DB148A1F-377F-41EF-B10F-693E628837FB@irisa.fr>

On Tue, 2009-11-24 at 12:17 +0100, Pierre Riteau wrote:
> On 24 nov. 2009, at 11:28, Mark McLoughlin wrote:
> 
> > On Tue, 2009-11-24 at 10:06 +0100, Pierre Riteau wrote:
> >> vnet_hdr is initialized at 1 by default. We need to reset it to 0 if
> >> the kernel doesn't support IFF_VNET_HDR.
> >> 
> >> Signed-off-by: Pierre Riteau <Pierre.Riteau@irisa.fr>
> > 
> > Thanks Pierre, I see why this is needed now
> > 
> > Acked-by: Mark McLoughlin <markmc@redhat.com>
> > 
> > Cheers,
> > Mark.
> 
> 
> Thanks for your rapid answer!
> 
> BTW, every time I run qemu I see this error message:
> 
>     TUNSETOFFLOAD ioctl() failed: Invalid argument
> 
> It is caused by the piece of code at the end of net/tap-linux.c:
> 
>     if (ioctl(fd, TUNSETOFFLOAD, offload) != 0) {
>         offload &= ~TUN_F_UFO;
>         if (ioctl(fd, TUNSETOFFLOAD, offload) != 0) {
>             fprintf(stderr, "TUNSETOFFLOAD ioctl() failed: %s\n",
>                     strerror(errno));
>         }
>     }
> 
> Isn't there a way to detect whether the kernel supports the
> TUNSETOFFLOAD ioctl at all?

The kernel will set errno to EINVAL if TUNSETOFFLOAD isn't supported, so
we could just ignore that case:

     if (ioctl(fd, TUNSETOFFLOAD, offload) != 0) {
          offload &= ~TUN_F_UFO;
          if (ioctl(fd, TUNSETOFFLOAD, offload) != 0 && errno != EINVAL) {
              fprintf(stderr, "TUNSETOFFLOAD ioctl() failed: %s\n",
                      strerror(errno));
          }
      }

The only concern is that we'll also miss out on an error message if
EINVAL is set for another reason. Currently, the only other reason if we
pass a offload flag not supported by the kernel, but that should never
happen.

Feel free to send a patch with that change and I'll ack it

Thanks,
Mark.

  reply	other threads:[~2009-11-24 11:25 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-24  9:06 [Qemu-devel] [PATCH] Fix TAP networking on host kernels without IFF_VNET_HDR support Pierre Riteau
2009-11-24 10:05 ` [Qemu-devel] [PATCH] net: initialize vnet_hdr in net_tap_init() Mark McLoughlin
2009-11-24 10:24   ` Pierre Riteau
2009-11-24 10:28 ` [Qemu-devel] Re: [PATCH] Fix TAP networking on host kernels without IFF_VNET_HDR support Mark McLoughlin
2009-11-24 11:17   ` Pierre Riteau
2009-11-24 11:22     ` Mark McLoughlin [this message]
2009-11-24 21:27       ` Pierre Riteau
2009-11-25  8:55         ` Mark McLoughlin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1259061772.8935.29.camel@blaa \
    --to=markmc@redhat.com \
    --cc=Pierre.Riteau@irisa.fr \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.