[PATCH] node_device: fix missing return from function nodedevRegister

Michal Prívozník mprivozn at redhat.com
Tue Oct 25 07:27:48 UTC 2022


On 10/25/22 01:07, jcfaracco at gmail.com wrote:
> From: Julio Faracco <jcfaracco at gmail.com>
> 
> The function nodedevRegister() (or all register functions) requires an
> integer as a return. That function is not returning a value when UDEV is
> not set. This commit just adds a generic return for that specific case.
> 
> Signed-off-by: Julio Faracco <jcfaracco at gmail.com>
> ---
>  src/node_device/node_device_driver.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c
> index 8e93b0dd6f..4d51851cfd 100644
> --- a/src/node_device/node_device_driver.c
> +++ b/src/node_device/node_device_driver.c
> @@ -1584,6 +1584,8 @@ nodedevRegister(void)
>  {
>  #ifdef WITH_UDEV
>      return udevNodeRegister();
> +#else
> +    return 0;
>  #endif

Technically, this patch is correct. Because if WITH_UDEV is undefined
then this is an empty body function. But in that case this source file
shouldn't be compiled at all, because src/node_device/meson.build has:

if conf.has('WITH_NODE_DEVICES')
  node_device_driver_impl = static_library(
    'virt_driver_nodedev_impl',
    [
      node_device_driver_sources,
    ],
  ...
endif

and toplevel meson.build has:

if udev_dep.found() and conf.has('WITH_LIBVIRTD')
  conf.set('WITH_NODE_DEVICES', 1)
endif


Therefore, I'm failing to see how the driver is even attempted to be
compiled without udev, at which point the function is not empty bodied.

If anything, we should remove WITH_UDEV because that's the only backend
we support anyway.

Michal



More information about the libvir-list mailing list