From 1f1eb0949c1889ec5cd62e0619c3336fa0619af9 Mon Sep 17 00:00:00 2001 From: Dekel Peled Date: Mon, 5 Aug 2019 14:51:19 +0300 Subject: [PATCH] net/mlx5: fix UDP checksum zeroing Function flow_dv_zero_encap_udp_csum() uses a while loop to iterate over vlan items in flow rule. Pointer next_hdr is incremented to the next item before it is used, so the first item is skipped. This patch moves the incrementing of next_hdr to the correct place. Fixes: bf1d7d9a033a ("net/mlx5: zero out UDP checksum in encapsulation") Signed-off-by: Dekel Peled Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_dv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index a7d677f854..ca7252ac72 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -1504,9 +1504,9 @@ flow_dv_zero_encap_udp_csum(void *data, struct rte_flow_error *error) /* VLAN skipping */ while (proto == RTE_ETHER_TYPE_VLAN || proto == RTE_ETHER_TYPE_QINQ) { - next_hdr += sizeof(struct rte_vlan_hdr); vlan = (struct rte_vlan_hdr *)next_hdr; proto = RTE_BE16(vlan->eth_proto); + next_hdr += sizeof(struct rte_vlan_hdr); } /* HW calculates IPv4 csum. no need to proceed */ -- 2.20.1