net/mlx5: fix overflow of Memory Region cache
[dpdk.git] / drivers / net / mlx5 / mlx5_trigger.c
index 5de2d02..88f60a0 100644 (file)
@@ -64,8 +64,11 @@ priv_txq_start(struct priv *priv)
 
                if (!txq_ctrl)
                        continue;
-               LIST_FOREACH(mr, &priv->mr, next)
+               LIST_FOREACH(mr, &priv->mr, next) {
                        priv_txq_mp2mr_reg(priv, &txq_ctrl->txq, mr->mp, idx++);
+                       if (idx == MLX5_PMD_TX_MP_CACHE)
+                               break;
+               }
                txq_alloc_elts(txq_ctrl);
                txq_ctrl->ibv = mlx5_priv_txq_ibv_new(priv, i);
                if (!txq_ctrl->ibv) {
@@ -132,9 +135,6 @@ mlx5_dev_start(struct rte_eth_dev *dev)
        struct mlx5_mr *mr = NULL;
        int err;
 
-       if (mlx5_is_secondary())
-               return -E_RTE_SECONDARY;
-
        dev->data->dev_started = 1;
        priv_lock(priv);
        err = priv_flow_create_drop_queue(priv);
@@ -213,9 +213,6 @@ mlx5_dev_stop(struct rte_eth_dev *dev)
        struct priv *priv = dev->data->dev_private;
        struct mlx5_mr *mr;
 
-       if (mlx5_is_secondary())
-               return;
-
        priv_lock(priv);
        dev->data->dev_started = 0;
        /* Prevent crashes when queues are still in use. */