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

Michal Privoznik mprivozn at redhat.com
Sun Apr 23 13:20:20 UTC 2017


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.

> 
> 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




More information about the libvir-list mailing list