From f93f4e35d3c5f63d077580cc8d0b1a96d22bc1c3 Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 22 Jul 2015 10:13:30 +0100 Subject: [PATCH] ixgbe: fix check for split packets 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 Signed-off-by: Bruce Richardson --- 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 9c5390ea92..6c1647e545 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.20.1