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