numam-dpdk/lib
Andy Green f37a2e7c74 net: explicit cast in L4 checksum
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")
Cc: stable@dpdk.org

Signed-off-by: Andy Green <andy@warmcat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
2018-05-22 16:27:09 +02:00
..
librte_acl build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_bbdev bbdev: split queue groups 2018-05-10 17:46:20 +01:00
librte_bitratestats bitratestats: fix library version in meson build 2018-03-28 00:07:35 +02:00
librte_bpf bpf: add missed experimental tags 2018-05-14 17:42:43 +02:00
librte_cfgfile build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_cmdline cmdline: standardize conversion of IP address strings 2018-04-23 21:31:40 +02:00
librte_compat compat: relicense some files 2018-02-06 23:13:47 +01:00
librte_compressdev compressdev: get device id from name 2018-05-10 17:46:20 +01:00
librte_cryptodev lib: clear experimental version tag in linker scripts 2018-05-14 03:37:28 +02:00
librte_distributor build: set compat lib as universal dependency 2018-01-30 21:59:00 +01:00
librte_eal eal: explicit cast in rwlock functions 2018-05-22 16:27:01 +02:00
librte_efd build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_ethdev ethdev: explicit cast of queue count return 2018-05-21 00:21:38 +02:00
librte_eventdev eventdev: fix build with clang on ARM 2018-05-21 00:55:50 +02:00
librte_flow_classify flow_classify: remove void pointer cast 2018-03-30 14:08:43 +02:00
librte_gro build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_gso build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_hash hash: explicit casts for truncation in CRC32c 2018-05-13 22:45:37 +02:00
librte_ip_frag ip_frag: fix some debug logs 2018-05-14 21:14:49 +02:00
librte_jobstats build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_kni fix ethdev port id validation 2018-04-18 00:37:05 +02:00
librte_kvargs kvargs: fix syntax in comments 2018-03-28 00:43:22 +02:00
librte_latencystats ethdev: remove experimental flag of ports enumeration 2018-04-27 18:00:24 +01:00
librte_lpm lpm: fix allocation of an existing object 2018-02-01 00:35:06 +01:00
librte_mbuf mbuf: explicit cast of size on detach 2018-05-21 00:21:19 +02:00
librte_member build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_mempool mempool: fix virtual address population 2018-05-15 16:30:14 +02:00
librte_meter lib: clear experimental version tag in linker scripts 2018-05-14 03:37:28 +02:00
librte_metrics metrics: fix potential missing string termination 2018-04-04 17:33:08 +02:00
librte_net net: explicit cast in L4 checksum 2018-05-22 16:27:09 +02:00
librte_pci pci: use z specifier to format size_t 2018-04-04 13:43:33 +02:00
librte_pdump pdump: use generic multi-process channel 2018-04-18 01:26:21 +02:00
librte_pipeline lib: clear experimental version tag in linker scripts 2018-05-14 03:37:28 +02:00
librte_port build: remove checks for non-optional libraries 2018-04-17 16:09:43 +02:00
librte_power build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_rawdev rawdev: remove dead code 2018-05-14 01:01:11 +02:00
librte_reorder build: replace license text with SPDX tag 2018-01-30 21:58:59 +01:00
librte_ring ring: remove signed type flip-flopping 2018-05-21 00:20:16 +02:00
librte_sched lib: clear experimental version tag in linker scripts 2018-05-14 03:37:28 +02:00
librte_security security: extend userdata for IPsec events 2018-04-23 18:20:10 +01:00
librte_table table: add dedicated params struct for cuckoo hash 2018-05-08 16:19:58 +02:00
librte_timer eal: make semantics of lcore role function more intuitive 2018-04-26 16:58:18 +02:00
librte_vhost vhost: improve dirty pages logging performance 2018-05-17 14:19:05 +02:00
Makefile bpf: add BPF loading and execution framework 2018-05-12 00:35:15 +02:00
meson.build build: ensure compatibility with future meson versions 2018-05-08 22:22:02 +02:00