net/mlx5: fix memory region cache lookup
The Memory Region (MR) cache contains pointers to mlx5_mr.
The MR cache indexes are filled when a new MR is created. As it is
possible for MR to be created on the flight, an extra validation must be
added to avoid segmentation fault.
Fixes: b0b0938457
("net/mlx5: use buffer address for LKEY search")
Cc: stable@dpdk.org
Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
This commit is contained in:
parent
e313ef4c2f
commit
95086c6543
@ -555,7 +555,8 @@ mlx5_tx_mb2mr(struct mlx5_txq_data *txq, struct rte_mbuf *mb)
|
||||
if (likely(txq->mp2mr[i]->start <= addr && txq->mp2mr[i]->end >= addr))
|
||||
return txq->mp2mr[i]->lkey;
|
||||
for (i = 0; (i != RTE_DIM(txq->mp2mr)); ++i) {
|
||||
if (unlikely(txq->mp2mr[i]->mr == NULL)) {
|
||||
if (unlikely(txq->mp2mr[i] == NULL ||
|
||||
txq->mp2mr[i]->mr == NULL)) {
|
||||
/* Unknown MP, add a new MR for it. */
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user