net/mlx5: fix device removal handler for multiport
[dpdk.git] / drivers / raw / skeleton_rawdev / skeleton_rawdev.c
index 6bdbbb5..709be76 100644 (file)
@@ -32,7 +32,7 @@
 int skeleton_pmd_logtype;
 
 /* Count of instances */
-uint16_t skeldev_init_once;
+static uint16_t skeldev_init_once;
 
 /**< Rawdev Skeleton dummy driver name */
 #define SKELETON_PMD_RAWDEV_NAME rawdev_skeleton
@@ -305,6 +305,18 @@ static int skeleton_rawdev_queue_release(struct rte_rawdev *dev,
        return ret;
 }
 
+static uint16_t skeleton_rawdev_queue_count(struct rte_rawdev *dev)
+{
+       struct skeleton_rawdev *skeldev;
+
+       SKELETON_PMD_FUNC_TRACE();
+
+       RTE_FUNC_PTR_OR_ERR_RET(dev, -EINVAL);
+
+       skeldev = skeleton_rawdev_get_priv(dev);
+       return skeldev->num_queues;
+}
+
 static int skeleton_rawdev_get_attr(struct rte_rawdev *dev,
                                    const char *attr_name,
                                    uint64_t *attr_value)
@@ -524,6 +536,7 @@ static const struct rte_rawdev_ops skeleton_rawdev_ops = {
        .queue_def_conf = skeleton_rawdev_queue_def_conf,
        .queue_setup = skeleton_rawdev_queue_setup,
        .queue_release = skeleton_rawdev_queue_release,
+       .queue_count = skeleton_rawdev_queue_count,
 
        .attr_get = skeleton_rawdev_get_attr,
        .attr_set = skeleton_rawdev_set_attr,
@@ -572,7 +585,6 @@ skeleton_rawdev_create(const char *name,
 
        rawdev->dev_ops = &skeleton_rawdev_ops;
        rawdev->device = &vdev->device;
-       rawdev->driver_name = vdev->device.driver->name;
 
        skeldev = skeleton_rawdev_get_priv(rawdev);
 
@@ -692,6 +704,9 @@ skeleton_rawdev_probe(struct rte_vdev_device *vdev)
 
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -EINVAL;
+
        /* More than one instance is not supported */
        if (skeldev_init_once) {
                SKELETON_PMD_ERR("Multiple instance not supported for %s",
@@ -727,6 +742,8 @@ skeleton_rawdev_remove(struct rte_vdev_device *vdev)
        int ret;
 
        name = rte_vdev_device_name(vdev);
+       if (name == NULL)
+               return -1;
 
        SKELETON_PMD_INFO("Closing %s on NUMA node %d", name, rte_socket_id());
 
@@ -744,10 +761,7 @@ static struct rte_vdev_driver skeleton_pmd_drv = {
 
 RTE_PMD_REGISTER_VDEV(SKELETON_PMD_RAWDEV_NAME, skeleton_pmd_drv);
 
-RTE_INIT(skeleton_pmd_init_log);
-
-static void
-skeleton_pmd_init_log(void)
+RTE_INIT(skeleton_pmd_init_log)
 {
        skeleton_pmd_logtype = rte_log_register("rawdev.skeleton");
        if (skeleton_pmd_logtype >= 0)