From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C3B7CA2E1B for ; Thu, 5 Sep 2019 12:19:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BA0FA1EF73; Thu, 5 Sep 2019 12:19:22 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 5ED851EF6E for ; Thu, 5 Sep 2019 12:19:20 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BF6DF308A98C; Thu, 5 Sep 2019 10:19:19 +0000 (UTC) Received: from rh.redhat.com (ovpn-117-52.ams2.redhat.com [10.36.117.52]) by smtp.corp.redhat.com (Postfix) with ESMTP id AE73F19C6A; Thu, 5 Sep 2019 10:19:18 +0000 (UTC) From: Kevin Traynor To: Maciej Bielski Cc: Eduard Serra , Michal Krawczyk , dpdk stable Date: Thu, 5 Sep 2019 11:17:38 +0100 Message-Id: <20190905101754.21933-38-ktraynor@redhat.com> In-Reply-To: <20190905101754.21933-1-ktraynor@redhat.com> References: <20190905101754.21933-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Thu, 05 Sep 2019 10:19:19 +0000 (UTC) Subject: [dpdk-stable] patch 'net/ena: fix L4 checksum Tx offload' has been queued to LTS release 18.11.3 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/7b1714c76de643a43e54e76d846846d3d6e90f0e Thanks. Kevin Traynor --- >From 7b1714c76de643a43e54e76d846846d3d6e90f0e Mon Sep 17 00:00:00 2001 From: Maciej Bielski Date: Thu, 1 Aug 2019 13:45:36 +0200 Subject: [PATCH] net/ena: fix L4 checksum Tx offload [ upstream commit 40e7c02155625f18a87faf5e6a8cec2e986146e8 ] During an if-condition evaluation, a 2-bit flag evaluates to 'true' for '0x1', '0x2' and '0x3'. Thus, from this perspective these flags are indistinguishable. To make them distinct, respective bits must be extracted with a mask and then checked for strict equality. Specifically here, even if `PKT_TX_UDP_CKSUM` (value '0x3') was set, the expression `mbuf->ol_flags & PKT_TX_TCP` (the second flag of value '0x1') is evaluated first and the result is 'true'. In consequence, for UDP packets the execution flow enters an incorrect branch. Fixes: 56b8b9b7e5d2 ("net/ena: convert to new Tx offloads API") Reported-by: Eduard Serra Signed-off-by: Maciej Bielski Acked-by: Michal Krawczyk --- drivers/net/ena/ena_ethdev.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index fa7b58b7d..0779bb771 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -340,10 +340,11 @@ static inline void ena_tx_mbuf_prepare(struct rte_mbuf *mbuf, /* check if L4 checksum is needed */ - if ((mbuf->ol_flags & PKT_TX_TCP_CKSUM) && + if (((mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM) && (queue_offloads & DEV_TX_OFFLOAD_TCP_CKSUM)) { ena_tx_ctx->l4_proto = ENA_ETH_IO_L4_PROTO_TCP; ena_tx_ctx->l4_csum_enable = true; - } else if ((mbuf->ol_flags & PKT_TX_UDP_CKSUM) && - (queue_offloads & DEV_TX_OFFLOAD_UDP_CKSUM)) { + } else if (((mbuf->ol_flags & PKT_TX_L4_MASK) == + PKT_TX_UDP_CKSUM) && + (queue_offloads & DEV_TX_OFFLOAD_UDP_CKSUM)) { ena_tx_ctx->l4_proto = ENA_ETH_IO_L4_PROTO_UDP; ena_tx_ctx->l4_csum_enable = true; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.813820768 +0100 +++ 0038-net-ena-fix-L4-checksum-Tx-offload.patch 2019-09-05 10:36:47.540699804 +0100 @@ -1 +1 @@ -From 40e7c02155625f18a87faf5e6a8cec2e986146e8 Mon Sep 17 00:00:00 2001 +From 7b1714c76de643a43e54e76d846846d3d6e90f0e Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 40e7c02155625f18a87faf5e6a8cec2e986146e8 ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ -index a1187851c..7d4a3b225 100644 +index fa7b58b7d..0779bb771 100644 @@ -30 +31 @@ -@@ -331,10 +331,11 @@ static inline void ena_tx_mbuf_prepare(struct rte_mbuf *mbuf, +@@ -340,10 +340,11 @@ static inline void ena_tx_mbuf_prepare(struct rte_mbuf *mbuf,