From: Olga Shern Date: Mon, 23 Nov 2015 14:44:40 +0000 (+0100) Subject: mlx4: fix local protection error when Tx MP to MR cache is full X-Git-Tag: spdx-start~7986 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=40100bfe34dae9a1a03fcd9e8137c4b5348574f9;p=dpdk.git mlx4: fix local protection error when Tx MP to MR cache is full When MP to MR cache is full, the last (newest) MR is freed instead of the first (oldest) one, causing local protection errors during TX. Fixes: 7fae69eeff13 ("mlx4: new poll mode driver") Signed-off-by: Olga Shern Signed-off-by: Adrien Mazarguil --- diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 4bd0ecd560..3e05373b5e 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -1049,7 +1049,7 @@ txq_mp2mr(struct txq *txq, const struct rte_mempool *mp) DEBUG("%p: MR <-> MP table full, dropping oldest entry.", (void *)txq); --i; - claim_zero(ibv_dereg_mr(txq->mp2mr[i].mr)); + claim_zero(ibv_dereg_mr(txq->mp2mr[0].mr)); memmove(&txq->mp2mr[0], &txq->mp2mr[1], (sizeof(txq->mp2mr) - sizeof(txq->mp2mr[0]))); }