net/mlx5: fix memory region boundary checks
Since commitf81ec74843
("net/mlx5: fix memory region lookup") the Memory Region (MR) are no longer overlaps. Comparing the end address of the MR should be exclusive, otherwise two contiguous MRs may cause wrong matching. Fixes:f81ec74843
("net/mlx5: fix memory region lookup") 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
627cbfad1c
commit
25f28d9d29
@ -552,7 +552,7 @@ mlx5_tx_mb2mr(struct mlx5_txq_data *txq, struct rte_mbuf *mb)
|
||||
struct mlx5_mr *mr;
|
||||
|
||||
assert(i < RTE_DIM(txq->mp2mr));
|
||||
if (likely(txq->mp2mr[i]->start <= addr && txq->mp2mr[i]->end >= addr))
|
||||
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] == NULL ||
|
||||
@ -561,7 +561,7 @@ mlx5_tx_mb2mr(struct mlx5_txq_data *txq, struct rte_mbuf *mb)
|
||||
break;
|
||||
}
|
||||
if (txq->mp2mr[i]->start <= addr &&
|
||||
txq->mp2mr[i]->end >= addr) {
|
||||
txq->mp2mr[i]->end > addr) {
|
||||
assert(txq->mp2mr[i]->lkey != (uint32_t)-1);
|
||||
txq->mr_cache_idx = i;
|
||||
return txq->mp2mr[i]->lkey;
|
||||
|
Loading…
Reference in New Issue
Block a user