patches for DPDK stable branches
 help / color / mirror / Atom feed
From: Yongseok Koh <yskoh@mellanox.com>
To: Andy Green <andy@warmcat.com>
Cc: Bruce Richardson <bruce.richardson@intel.com>,
	dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net: explicit cast in L4 checksum' has been queued to LTS release 17.11.5
Date: Thu,  3 Jan 2019 00:13:55 -0800	[thread overview]
Message-ID: <20190103081400.14191-32-yskoh@mellanox.com> (raw)
In-Reply-To: <20190103081400.14191-1-yskoh@mellanox.com>

Hi,

FYI, your patch has been queued to LTS release 17.11.5

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 01/04/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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.

Thanks.

Yongseok

---
>From 088f43cdcf2114776815930e8ecad2b047d986dc Mon Sep 17 00:00:00 2001
From: Andy Green <andy@warmcat.com>
Date: Tue, 22 May 2018 09:24:22 +0800
Subject: [PATCH] net: explicit cast in L4 checksum

[ upstream commit f37a2e7c747b0758fcd8390482aeeac490f688b5 ]

GCC 8.1 warned:

In function 'rte_ipv4_udptcp_cksum':
rte_byteorder.h:51:24: warning: conversion from 'long unsigned int' to
'uint32_t' {aka 'unsigned int'} may change value [-Wconversion]
 #define rte_bswap16(x) ((uint16_t) (__builtin_constant_p(x) ?  \
                        ^
rte_byteorder.h:85:29: note: in expansion of macro 'rte_bswap16'
 #define rte_be_to_cpu_16(x) rte_bswap16(x)
                             ^~~~~~~~~~~
rte_ip.h:321:11: note: in expansion of macro 'rte_be_to_cpu_16'
  l4_len = rte_be_to_cpu_16(ipv4_hdr->total_length) -
           ^~~~~~~~~~~~~~~~

Also with this one, it is a cast that always occurred
and is just being done explicitly, with no changes to
the generated code.

The warning stack is misleading, it points to the last
element in the macro that produced the lhs of the subtraction
above.  But the only "unsigned long int" in the expression is
the result of the sizeof() on the rhs, it promotes the
subtraction result to unsigned long.  So the error actually
relates to the result of the outer subtraction.

The actual error is "you are trying to put an unsigned long
into a uint32_t".  We always did so, the fix is just to inform
the compiler it is intentional with an explicit cast.

Fixes: 6006818cfb ("net: new checksum functions")

Signed-off-by: Andy Green <andy@warmcat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
 lib/librte_net/rte_ip.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/librte_net/rte_ip.h b/lib/librte_net/rte_ip.h
index 6a7426049..b22c1f800 100644
--- a/lib/librte_net/rte_ip.h
+++ b/lib/librte_net/rte_ip.h
@@ -380,8 +380,8 @@ rte_ipv4_udptcp_cksum(const struct ipv4_hdr *ipv4_hdr, const void *l4_hdr)
 	uint32_t cksum;
 	uint32_t l4_len;
 
-	l4_len = rte_be_to_cpu_16(ipv4_hdr->total_length) -
-		sizeof(struct ipv4_hdr);
+	l4_len = (uint32_t)(rte_be_to_cpu_16(ipv4_hdr->total_length) -
+		sizeof(struct ipv4_hdr));
 
 	cksum = rte_raw_cksum(l4_hdr, l4_len);
 	cksum += rte_ipv4_phdr_cksum(ipv4_hdr, 0);
-- 
2.11.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-01-02 23:59:13.771837365 -0800
+++ 0032-net-explicit-cast-in-L4-checksum.patch	2019-01-02 23:59:12.097819000 -0800
@@ -1,8 +1,10 @@
-From f37a2e7c747b0758fcd8390482aeeac490f688b5 Mon Sep 17 00:00:00 2001
+From 088f43cdcf2114776815930e8ecad2b047d986dc Mon Sep 17 00:00:00 2001
 From: Andy Green <andy@warmcat.com>
 Date: Tue, 22 May 2018 09:24:22 +0800
 Subject: [PATCH] net: explicit cast in L4 checksum
 
+[ upstream commit f37a2e7c747b0758fcd8390482aeeac490f688b5 ]
+
 GCC 8.1 warned:
 
 In function 'rte_ipv4_udptcp_cksum':
@@ -33,7 +35,6 @@
 the compiler it is intentional with an explicit cast.
 
 Fixes: 6006818cfb ("net: new checksum functions")
-Cc: stable@dpdk.org
 
 Signed-off-by: Andy Green <andy@warmcat.com>
 Acked-by: Bruce Richardson <bruce.richardson@intel.com>
@@ -42,10 +43,10 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/lib/librte_net/rte_ip.h b/lib/librte_net/rte_ip.h
-index c924aca7f..72dc2456a 100644
+index 6a7426049..b22c1f800 100644
 --- a/lib/librte_net/rte_ip.h
 +++ b/lib/librte_net/rte_ip.h
-@@ -318,8 +318,8 @@ rte_ipv4_udptcp_cksum(const struct ipv4_hdr *ipv4_hdr, const void *l4_hdr)
+@@ -380,8 +380,8 @@ rte_ipv4_udptcp_cksum(const struct ipv4_hdr *ipv4_hdr, const void *l4_hdr)
  	uint32_t cksum;
  	uint32_t l4_len;
  

  parent reply	other threads:[~2019-01-03  8:15 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-03  8:13 [dpdk-stable] patch 'eal: explicit cast of builtin for bsf32' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'eal: explicit cast of core id when getting index' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'eal: declare trace buffer at top of own block' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'spinlock/x86: move stack declaration before code' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net: move stack variable at top of VLAN strip function' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'ethdev: explicit cast of buffered Tx number' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'hash: move stack declaration at top of CRC32c function' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'hash: explicit casts for truncation in CRC32c' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'bus/pci: replace strncpy by strlcpy' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'bus/dpaa: fix inconsistent struct alignment' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net/nfp: fix memcpy out of source range' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net/qede: replace strncpy by strlcpy' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net/qede: fix strncpy' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net/sfc: make sure that stats name is nul-terminated' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'app/procinfo: fix sprintf overrun' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'devtools: provide more generic grep in git check' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'eal: explicit cast of strlcpy return' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'eal: fix casts in random functions' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'eal: explicit cast in constant byte swap' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'ring: remove useless variables' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'ring: remove signed type flip-flopping' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: fix reference counter integer promotion' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: explicit casts of reference counter' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: explicit cast of headroom on reset' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: explicit cast of size on detach' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net: explicit cast of multicast bit clearing' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net: explicit cast of IP checksum to 16-bit' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'net: explicit cast of protocol in IPv6 checksum' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'ethdev: explicit cast of queue count return' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'eal/x86: fix type of variable in memcpy function' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'eal: explicit cast in rwlock functions' " Yongseok Koh
2019-01-03  8:13 ` Yongseok Koh [this message]
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: fix type of private size in detach' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: fix type of variables in linearize function' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: avoid implicit demotion in 64-bit arithmetic' " Yongseok Koh
2019-01-03  8:13 ` [dpdk-stable] patch 'mbuf: avoid integer promotion in prepend/adj/chain' " Yongseok Koh
2019-01-03  8:14 ` [dpdk-stable] patch 'ethdev: fix type and scope of variables in Rx burst' " Yongseok Koh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190103081400.14191-32-yskoh@mellanox.com \
    --to=yskoh@mellanox.com \
    --cc=andy@warmcat.com \
    --cc=bruce.richardson@intel.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).