From bd3e64cb1c38695fb410903feddd287046687271 Mon Sep 17 00:00:00 2001 From: Kommula Shiva Shankar Date: Fri, 13 Sep 2019 21:01:12 +0530 Subject: [PATCH] net/octeontx2: fix CQE ring prefetch on wrap around When computing the head of CQE ring of prefetch, use qmask to point to the correct head index on wrap around case. Fixes: cc4d7693f2d9 ("net/octeontx2: support Rx") Cc: stable@dpdk.org Signed-off-by: Kommula Shiva Shankar Acked-by: Jerin Jacob --- drivers/net/octeontx2/otx2_rx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/octeontx2/otx2_rx.c b/drivers/net/octeontx2/otx2_rx.c index 701efc8585..48565db030 100644 --- a/drivers/net/octeontx2/otx2_rx.c +++ b/drivers/net/octeontx2/otx2_rx.c @@ -61,7 +61,8 @@ nix_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, while (packets < nb_pkts) { /* Prefetch N desc ahead */ - rte_prefetch_non_temporal((void *)(desc + (CQE_SZ(head + 2)))); + rte_prefetch_non_temporal((void *)(desc + + (CQE_SZ((head + 2) & qmask)))); cq = (struct nix_cqe_hdr_s *)(desc + CQE_SZ(head)); mbuf = nix_get_mbuf_from_cqe(cq, data_off); -- 2.20.1