From 69491883cb3c10be73b55316b813909dcc61d8c5 Mon Sep 17 00:00:00 2001 From: Olivier Gournet Date: Mon, 17 Oct 2016 14:56:33 +0200 Subject: [PATCH] net/mlx5: fix initialization in secondary process The changes introduced by previous commits (ones in fixes lines) made secondaries attempt to reinitialize the Tx queue structures of the primary instead of their own, for which they also do not allocate enough memory, leading to crashes. Fixes: 1d88ba171942 ("net/mlx5: refactor Tx data path") Fixes: 21c8bb4928c9 ("net/mlx5: split Tx queue structure") Signed-off-by: Olivier Gournet Acked-by: Adrien Mazarguil --- drivers/net/mlx5/mlx5_ethdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c index 4eb533b16c..b48fbece97 100644 --- a/drivers/net/mlx5/mlx5_ethdev.c +++ b/drivers/net/mlx5/mlx5_ethdev.c @@ -1312,11 +1312,13 @@ mlx5_secondary_data_setup(struct priv *priv) continue; primary_txq_ctrl = container_of(primary_txq, struct txq_ctrl, txq); - txq_ctrl = rte_calloc_socket("TXQ", 1, sizeof(*txq_ctrl), 0, + txq_ctrl = rte_calloc_socket("TXQ", 1, sizeof(*txq_ctrl) + + (1 << primary_txq->elts_n) * + sizeof(struct rte_mbuf *), 0, primary_txq_ctrl->socket); if (txq_ctrl != NULL) { if (txq_ctrl_setup(priv->dev, - primary_txq_ctrl, + txq_ctrl, 1 << primary_txq->elts_n, primary_txq_ctrl->socket, NULL) == 0) { -- 2.20.1