From: Alexander Kozyrev Date: Thu, 14 Jan 2021 21:32:19 +0000 (+0000) Subject: net/mlx5: fix flow tag decompression X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=bd0940a5c4df6a79595adac39959ab8b578ec3a9;p=dpdk.git net/mlx5: fix flow tag decompression Packets can get a wrong Flow Tag on x86 architecture with the Flow Tag compression format (rxq_cqe_comp_en=2) enabled inside the SSE Rx burst. The shuffle mask that extracts a Flow Tag from the pair of compressed CQEs is reversed. This leads to the wrong Flow Tag assignment. Correct the shuffle mask to get proper bytes for a Flow Tag from miniCQEs. Fixes: 54c2d46b160f ("net/mlx5: support flow tag and packet header miniCQEs") Cc: stable@dpdk.org Signed-off-by: Alexander Kozyrev Acked-by: Viacheslav Ovsiienko --- diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h index d4df9816aa..0b3f240e10 100644 --- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h +++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h @@ -197,8 +197,8 @@ rxq_cq_decompress_v(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cq, const __m128i flow_mark_adj = _mm_set_epi32(-1, -1, -1, -1); const __m128i flow_mark_shuf = - _mm_set_epi8(-1, 1, 0, 4, - -1, 9, 8, 12, + _mm_set_epi8(-1, 9, 8, 12, + -1, 1, 0, 4, -1, -1, -1, -1, -1, -1, -1, -1); const __m128i ft_mask =