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(a)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