From 545b884b1da384106327cef1a2124ab986831076 Mon Sep 17 00:00:00 2001 From: Yongseok Koh Date: Tue, 1 Aug 2017 09:35:20 -0700 Subject: [PATCH] net/mlx5: fix buffer address posting in SSE Rx The data_off field of newly allocated mbufs is stale data. This shouldn't be used in calculating Rx address for device when posting free buffers. RTE_PKTMBUF_HEADROOM should be used instead and data_off of a mbuf will be reset on packet reception anyway. Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86") Signed-off-by: Yongseok Koh Acked-by: Nelio Laranjeiro --- drivers/net/mlx5/mlx5_rxtx_vec_sse.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.c b/drivers/net/mlx5/mlx5_rxtx_vec_sse.c index 74e595386c..9be48a0c9b 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.c +++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.c @@ -568,7 +568,8 @@ rxq_replenish_bulk_mbuf(struct rxq *rxq, uint16_t n) return; } for (i = 0; i < n; ++i) - wq[i].addr = htonll(rte_pktmbuf_mtod(elts[i], uintptr_t)); + wq[i].addr = htonll((uintptr_t)elts[i]->buf_addr + + RTE_PKTMBUF_HEADROOM); rxq->rq_ci += n; rte_wmb(); *rxq->rq_db = htonl(rxq->rq_ci); -- 2.20.1