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 <olgas@mellanox.com> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
This commit is contained in:
parent
0a3b350da8
commit
40100bfe34
@ -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])));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user