From: Andy Green Date: Thu, 17 May 2018 13:49:57 +0000 (+0800) Subject: net: explicit cast of IP checksum to 16-bit X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=466de6d5d8648f6a2c6cfc90c2d1bf217dd06e90;p=dpdk.git net: explicit cast of IP checksum to 16-bit GCC 8.1 warned: In function 'rte_raw_cksum_mbuf': rte_ip.h:225:22: warning: conversion from 'uint32_t' {aka 'unsigned int'} to 'uint16_t' {aka 'short unsigned int'} may change value [-Wconversion] tmp = rte_bswap16(tmp); ^~~ In function 'rte_ipv4_cksum': rte_ip.h:256:35: warning: conversion from 'int' to 'uint16_t' {aka 'short unsigned int'} may change value [-Wconversion] return (cksum == 0xffff) ? cksum : ~cksum; ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ rte_ip.h:332:9: warning: conversion from 'uint32_t' {aka 'unsigned int'} to 'uint16_t' {aka 'short unsigned int'} may change value [-Wconversion] return cksum; ^~~~~ In function 'rte_ipv6_udptcp_cksum': rte_ip.h:421:9: warning: conversion from 'uint32_t' {aka 'unsigned int'} to 'uint16_t' {aka 'short unsigned int'} may change value [-Wconversion] return cksum; ^~~~~ Fixes: 6006818cfb26 ("net: new checksum functions") Fixes: 4199fdea60c3 ("mbuf: generic support for TCP segmentation offload") Cc: stable@dpdk.org Signed-off-by: Andy Green --- diff --git a/lib/librte_net/rte_ip.h b/lib/librte_net/rte_ip.h index f32684c661..edbe4335cf 100644 --- a/lib/librte_net/rte_ip.h +++ b/lib/librte_net/rte_ip.h @@ -222,7 +222,7 @@ rte_raw_cksum_mbuf(const struct rte_mbuf *m, uint32_t off, uint32_t len, for (;;) { tmp = __rte_raw_cksum(buf, seglen, 0); if (done & 1) - tmp = rte_bswap16(tmp); + tmp = rte_bswap16((uint16_t)tmp); sum += tmp; done += seglen; if (done == len) @@ -253,7 +253,7 @@ rte_ipv4_cksum(const struct ipv4_hdr *ipv4_hdr) { uint16_t cksum; cksum = rte_raw_cksum(ipv4_hdr, sizeof(struct ipv4_hdr)); - return (cksum == 0xffff) ? cksum : ~cksum; + return (cksum == 0xffff) ? cksum : (uint16_t)~cksum; } /** @@ -329,7 +329,7 @@ rte_ipv4_udptcp_cksum(const struct ipv4_hdr *ipv4_hdr, const void *l4_hdr) if (cksum == 0) cksum = 0xffff; - return cksum; + return (uint16_t)cksum; } /** @@ -418,7 +418,7 @@ rte_ipv6_udptcp_cksum(const struct ipv6_hdr *ipv6_hdr, const void *l4_hdr) if (cksum == 0) cksum = 0xffff; - return cksum; + return (uint16_t)cksum; } #ifdef __cplusplus