vdpa/mlx5: improve portability of thread naming
[dpdk.git] / drivers / vdpa / mlx5 / mlx5_vdpa.c
index 0f22a86..17753ae 100644 (file)
@@ -295,6 +295,8 @@ mlx5_vdpa_dev_close(int vid)
        }
        priv->configured = 0;
        priv->vid = 0;
+       /* The mutex may stay locked after event thread cancel - initiate it. */
+       pthread_mutex_init(&priv->vq_config_lock, NULL);
        DRV_LOG(INFO, "vDPA device %d was closed.", vid);
        return ret;
 }
@@ -470,34 +472,6 @@ static struct rte_vdpa_dev_ops mlx5_vdpa_ops = {
        .reset_stats = mlx5_vdpa_reset_stats,
 };
 
-static struct ibv_device *
-mlx5_vdpa_get_ib_device_match(struct rte_pci_addr *addr)
-{
-       int n;
-       struct ibv_device **ibv_list = mlx5_glue->get_device_list(&n);
-       struct ibv_device *ibv_match = NULL;
-
-       if (!ibv_list) {
-               rte_errno = ENOSYS;
-               return NULL;
-       }
-       while (n-- > 0) {
-               struct rte_pci_addr pci_addr;
-
-               DRV_LOG(DEBUG, "Checking device \"%s\"..", ibv_list[n]->name);
-               if (mlx5_dev_to_pci_addr(ibv_list[n]->ibdev_path, &pci_addr))
-                       continue;
-               if (rte_pci_addr_cmp(addr, &pci_addr))
-                       continue;
-               ibv_match = ibv_list[n];
-               break;
-       }
-       if (!ibv_match)
-               rte_errno = ENOENT;
-       mlx5_glue->free_device_list(ibv_list);
-       return ibv_match;
-}
-
 /* Try to disable ROCE by Netlink\Devlink. */
 static int
 mlx5_vdpa_nl_roce_disable(const char *addr)
@@ -593,7 +567,7 @@ mlx5_vdpa_roce_disable(struct rte_pci_addr *addr, struct ibv_device **ibv)
                struct ibv_device *ibv_new;
 
                for (r = MLX5_VDPA_MAX_RETRIES; r; r--) {
-                       ibv_new = mlx5_vdpa_get_ib_device_match(addr);
+                       ibv_new = mlx5_os_get_ibv_device(addr);
                        if (ibv_new) {
                                *ibv = ibv_new;
                                return 0;
@@ -696,7 +670,7 @@ mlx5_vdpa_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
        struct mlx5_hca_attr attr;
        int ret;
 
-       ibv = mlx5_vdpa_get_ib_device_match(&pci_dev->addr);
+       ibv = mlx5_os_get_ibv_device(&pci_dev->addr);
        if (!ibv) {
                DRV_LOG(ERR, "No matching IB device for PCI slot "
                        PCI_PRI_FMT ".", pci_dev->addr.domain,
@@ -743,13 +717,14 @@ mlx5_vdpa_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
        priv->caps = attr.vdpa;
        priv->log_max_rqt_size = attr.log_max_rqt_size;
        priv->num_lag_ports = attr.num_lag_ports;
+       priv->qp_ts_format = attr.qp_ts_format;
        if (attr.num_lag_ports == 0)
                priv->num_lag_ports = 1;
        priv->ctx = ctx;
        priv->pci_dev = pci_dev;
        priv->var = mlx5_glue->dv_alloc_var(ctx, 0);
        if (!priv->var) {
-               DRV_LOG(ERR, "Failed to allocate VAR %u.\n", errno);
+               DRV_LOG(ERR, "Failed to allocate VAR %u.", errno);
                goto error;
        }
        priv->vdev = rte_vdpa_register_device(&pci_dev->device,