]> git.droids-corp.org - dpdk.git/commitdiff
ixgbe: fix check for split packets
authorBruce Richardson <bruce.richardson@intel.com>
Wed, 22 Jul 2015 09:13:30 +0000 (10:13 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Sun, 26 Jul 2015 12:41:27 +0000 (14:41 +0200)
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@linaro.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
drivers/net/ixgbe/ixgbe_rxtx_vec.c

index 9c5390ea92f2911af7045f801f88bc8412a8a0ca..6c1647e5453667321ed919df268f18a50af35e37 100644 (file)
@@ -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*/