mlx5: 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: 2e22920b85d9 ("mlx5: support non-scattered Tx and Rx") Signed-off-by: Olga Shern <olgas@mellanox.com> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
parent
40100bfe34
commit
ecbfdbad6e
@ -179,7 +179,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])));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user