Blame SOURCES/0001-net-mlx5-fix-memory-region-cache-lookup.patch

c7ffa4
From 95086c654322861a10f9835233a333d7c2188df3 Mon Sep 17 00:00:00 2001
c7ffa4
From: Shahaf Shuler <shahafs@mellanox.com>
c7ffa4
Date: Thu, 25 Jan 2018 18:17:58 +0200
c7ffa4
Subject: [PATCH] net/mlx5: fix memory region cache lookup
c7ffa4
c7ffa4
The Memory Region (MR) cache contains pointers to mlx5_mr.
c7ffa4
The MR cache indexes are filled when a new MR is created. As it is
c7ffa4
possible for MR to be created on the flight, an extra validation must be
c7ffa4
added to avoid segmentation fault.
c7ffa4
c7ffa4
Fixes: b0b093845793 ("net/mlx5: use buffer address for LKEY search")
c7ffa4
Cc: stable@dpdk.org
c7ffa4
c7ffa4
Signed-off-by: Xueming Li <xuemingl@mellanox.com>
c7ffa4
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
c7ffa4
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
c7ffa4
---
c7ffa4
 drivers/net/mlx5/mlx5_rxtx.h | 3 ++-
c7ffa4
 1 file changed, 2 insertions(+), 1 deletion(-)
c7ffa4
c7ffa4
diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
c7ffa4
index 9d9844365..f92eb33fb 100644
c7ffa4
--- a/drivers/net/mlx5/mlx5_rxtx.h
c7ffa4
+++ b/drivers/net/mlx5/mlx5_rxtx.h
c7ffa4
@@ -555,7 +555,8 @@ mlx5_tx_mb2mr(struct mlx5_txq_data *txq, struct rte_mbuf *mb)
c7ffa4
 	if (likely(txq->mp2mr[i]->start <= addr && txq->mp2mr[i]->end >= addr))
c7ffa4
 		return txq->mp2mr[i]->lkey;
c7ffa4
 	for (i = 0; (i != RTE_DIM(txq->mp2mr)); ++i) {
c7ffa4
-		if (unlikely(txq->mp2mr[i]->mr == NULL)) {
c7ffa4
+		if (unlikely(txq->mp2mr[i] == NULL ||
c7ffa4
+		    txq->mp2mr[i]->mr == NULL)) {
c7ffa4
 			/* Unknown MP, add a new MR for it. */
c7ffa4
 			break;
c7ffa4
 		}
c7ffa4
-- 
c7ffa4
2.14.3
c7ffa4