[dpdk-dev] [PATCH] net/vdev_netvsc: fix erronous cast
Matan Azrad
matan at mellanox.com
Thu Mar 14 12:13:10 CET 2019
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 <stephen at 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
More information about the dev
mailing list