[libvirt] [PATCH] util: fix virNetDevSetCoalesce fallback on Win32/FreeBSD

Roman Bogorodskiy bogorodskiy at gmail.com
Sun Apr 23 14:58:41 UTC 2017


  Michal Privoznik wrote:

> On 04/23/2017 02:55 PM, Roman Bogorodskiy wrote:
> >   Daniel P. Berrange wrote:
> > 
> >> The current fallback stub for virNetDevSetCoalesce is inside an
> >> earlier conditional block. This deals with the feature being
> >> missing on older Linux platforms. We need a second fallback stub
> >> though, outside the top level conditional, to ensure builds work
> >> on Win32/FreeBSD platforms too.
> >>
> >> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> >> ---
> >>
> >> Pushed as a build fix
> >>
> >>  src/util/virnetdev.c | 9 +++++++++
> >>  1 file changed, 9 insertions(+)
> >>
> >> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> >> index 6ff1b48..27f1637 100644
> >> --- a/src/util/virnetdev.c
> >> +++ b/src/util/virnetdev.c
> >> @@ -3207,6 +3207,15 @@ virNetDevGetFeatures(const char *ifname ATTRIBUTE_UNUSED,
> >>                ifname);
> >>      return 0;
> >>  }
> >> +
> >> +int virNetDevSetCoalesce(const char *ifname,
> >> +                         virNetDevCoalescePtr coalesce ATTRIBUTE_UNUSED)
> >> +{
> >> +    virReportSystemError(ENOSYS,
> >> +                         _("Cannot set coalesce info on interface '%s'"),
> >> +                         ifname);
> >> +    return -1;
> >> +}
> >>  #endif
> > 
> > I'm wondering if this stub could be relaxed to just return 0 instead
> > of triggering error?
> 
> We can make it return 0 if coalesce is NULL just like real function
> does. Otherwise the error will be be reported. Just like it is now.

Yeah, this sounds reasonable and works fine. Here's a patch for that:

https://www.redhat.com/archives/libvir-list/2017-April/msg01019.html

> > 
> > As this function is called by virNetDevTapCreateInBridgePort(), it fails
> > because virNetDevSetCoalesce() fails, making impossible to use the
> > bridged networking (which is very unfortunate).
> > 
> > The other option could be to ignore virNetDevSetCoalesce() return value
> > in virNetDevTapCreateInBridgePort() (the only called of this function so
> > far).
> 
> That would not fly though. It would ignore any real error too.
> 
> Michal

Roman Bogorodskiy
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170423/2632bbb5/attachment-0001.sig>


More information about the libvir-list mailing list