From: Yongseok Koh Date: Tue, 1 Aug 2017 16:35:20 +0000 (-0700) Subject: net/mlx5: fix buffer address posting in SSE Rx X-Git-Tag: spdx-start~2241 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=545b884b1da3;p=dpdk.git 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 --- 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);