net/mlx5: fix offload flags in SSE Rx
authorYongseok Koh <yskoh@mellanox.com>
Wed, 2 Aug 2017 17:29:52 +0000 (10:29 -0700)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 3 Aug 2017 21:24:44 +0000 (23:24 +0200)
The pinfo variable has wrong data. This has to have merged data of two
fields from Rx completion - pkt_info and hdr_type_etc.

Fixes: 6cb559d67b83 ("net/mlx5: add vectorized Rx/Tx burst for x86")

Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
drivers/net/mlx5/mlx5_rxtx_vec_sse.c

index 9be48a0..8a8d94c 100644 (file)
@@ -829,8 +829,9 @@ rxq_cq_to_ptype_oflags_v(struct rxq *rxq, __m128i cqes[4], __m128i op_err,
        ptype = _mm_and_si128(ptype, ptype_mask);
        pinfo = _mm_and_si128(pinfo, pinfo_mask);
        pinfo = _mm_slli_epi32(pinfo, 16);
-       ptype = _mm_or_si128(ptype, pinfo);
-       ptype = _mm_srli_epi32(ptype, 10);
+       /* Make pinfo has merged fields for ol_flags calculation. */
+       pinfo = _mm_or_si128(ptype, pinfo);
+       ptype = _mm_srli_epi32(pinfo, 10);
        ptype = _mm_packs_epi32(ptype, zero);
        /* Errored packets will have RTE_PTYPE_ALL_MASK. */
        op_err = _mm_srli_epi16(op_err, 8);