[dpdk-dev] [PATCH v2] ixgbe: fix check for split packets

Bruce Richardson bruce.richardson at intel.com
Wed Jul 22 11:13:30 CEST 2015


The check for split packets to be reassembled in the vector ixgbe PMD
was incorrectly only checking the first 16 elements of the array instead
of all 32. This is fixed by changing the uint32_t values to be uint64_t
instead.

Fixes: cf4b4708a88a ("ixgbe: improve slow-path perf with vector scattered Rx")

Reported-by: Zoltan Kiss <zoltan.kiss at linaro.org>
Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>

---
V2: Rename variable from split_fl32 to split_fl64 to match type change.
---
 drivers/net/ixgbe/ixgbe_rxtx_vec.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
index d3ac74a..f2052c6 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
@@ -549,10 +549,10 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
 		return 0;
 
 	/* happy day case, full burst + no packets to be joined */
-	const uint32_t *split_fl32 = (uint32_t *)split_flags;
+	const uint64_t *split_fl64 = (uint64_t *)split_flags;
 	if (rxq->pkt_first_seg == NULL &&
-			split_fl32[0] == 0 && split_fl32[1] == 0 &&
-			split_fl32[2] == 0 && split_fl32[3] == 0)
+			split_fl64[0] == 0 && split_fl64[1] == 0 &&
+			split_fl64[2] == 0 && split_fl64[3] == 0)
 		return nb_bufs;
 
 	/* reassemble any packets that need reassembly*/
-- 
2.4.3



More information about the dev mailing list