common/mlx5: use new port query API if available
[dpdk.git] / drivers / net / mlx5 / mlx5_trigger.c
index 879d317..ae7fcca 100644 (file)
@@ -1068,6 +1068,12 @@ mlx5_dev_start(struct rte_eth_dev *dev)
                        dev->data->port_id, strerror(rte_errno));
                goto error;
        }
+       if ((priv->config.devx && priv->config.dv_flow_en &&
+           priv->config.dest_tir) && priv->obj_ops.lb_dummy_queue_create) {
+               ret = priv->obj_ops.lb_dummy_queue_create(dev);
+               if (ret)
+                       goto error;
+       }
        ret = mlx5_txq_start(dev);
        if (ret) {
                DRV_LOG(ERR, "port %u Tx queue allocation failed: %s",
@@ -1148,6 +1154,8 @@ error:
        mlx5_traffic_disable(dev);
        mlx5_txq_stop(dev);
        mlx5_rxq_stop(dev);
+       if (priv->obj_ops.lb_dummy_queue_release)
+               priv->obj_ops.lb_dummy_queue_release(dev);
        mlx5_txpp_stop(dev); /* Stop last. */
        rte_errno = ret; /* Restore rte_errno. */
        return -rte_errno;
@@ -1186,6 +1194,8 @@ mlx5_dev_stop(struct rte_eth_dev *dev)
        priv->sh->port[priv->dev_port - 1].devx_ih_port_id = RTE_MAX_ETHPORTS;
        mlx5_txq_stop(dev);
        mlx5_rxq_stop(dev);
+       if (priv->obj_ops.lb_dummy_queue_release)
+               priv->obj_ops.lb_dummy_queue_release(dev);
        mlx5_txpp_stop(dev);
 
        return 0;