Hi

From: Stephen Hemminger
> The return value from bus->find_device is a rte_device which is not safe to
> cast to a rte_vdev_device structure.
> It doesn't really matter since only being checked for NULL but static checkers
> might find a bug here.
> 

Fix line is missing.

> Signed-off-by: Stephen Hemminger <step...@networkplumber.org>
> ---
>  drivers/net/vdev_netvsc/vdev_netvsc.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/net/vdev_netvsc/vdev_netvsc.c
> b/drivers/net/vdev_netvsc/vdev_netvsc.c
> index ba63fac2a598..801f54c96e01 100644
> --- a/drivers/net/vdev_netvsc/vdev_netvsc.c
> +++ b/drivers/net/vdev_netvsc/vdev_netvsc.c
> @@ -808,7 +808,7 @@ vdev_netvsc_cmp_rte_device(const struct
> rte_device *dev1,  static void  vdev_netvsc_scan_callback(__rte_unused
> void *arg)  {
> -     struct rte_vdev_device *dev;
> +     struct rte_device *dev;
>       struct rte_devargs *devargs;
>       struct rte_bus *vbus = rte_bus_find_by_name("vdev");
> 
> @@ -816,8 +816,9 @@ vdev_netvsc_scan_callback(__rte_unused void *arg)
>               if (!strncmp(devargs->name, VDEV_NETVSC_DRIVER_NAME,
>                            VDEV_NETVSC_DRIVER_NAME_LEN))
>                       return;
> -     dev = (struct rte_vdev_device *)vbus->find_device(NULL,
> -             vdev_netvsc_cmp_rte_device,
> VDEV_NETVSC_DRIVER_NAME);
> +
> +     dev = vbus->find_device(NULL, vdev_netvsc_cmp_rte_device,
> +                             VDEV_NETVSC_DRIVER_NAME);

Since the device must be vdev here,
It is better to use explicit cast to make the checker happy.

>       if (dev)
>               return;
>       if (rte_devargs_add(RTE_DEVTYPE_VIRTUAL,
> VDEV_NETVSC_DRIVER_NAME))
> --
> 2.17.1

Reply via email to