Use a plain uint16_t instead and avoid including one extra header: the 'bitwise' attribute of __sum16 is just used by sparse(1). Reported-by: omni <omni+alpine(a)hack.org> Fixes: 3d484aa37090 ("tcp: Update TCP checksum using an iovec array") Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com> --- v2: Use uint16_t instead of including linux/types.h tcp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tcp.c b/tcp.c index 4e0a17e..56ceba6 100644 --- a/tcp.c +++ b/tcp.c @@ -766,7 +766,7 @@ static void tcp_update_check_tcp4(const struct iphdr *iph, struct in_addr saddr = { .s_addr = iph->saddr }; struct in_addr daddr = { .s_addr = iph->daddr }; size_t check_ofs; - __sum16 *check; + uint16_t *check; int check_idx; uint32_t sum; char *ptr; @@ -797,7 +797,7 @@ static void tcp_update_check_tcp4(const struct iphdr *iph, return; } - check = (__sum16 *)ptr; + check = (uint16_t *)ptr; *check = 0; *check = csum_iov(iov, iov_cnt, l4offset, sum); @@ -816,7 +816,7 @@ static void tcp_update_check_tcp6(const struct ipv6hdr *ip6h, { uint16_t l4len = ntohs(ip6h->payload_len); size_t check_ofs; - __sum16 *check; + uint16_t *check; int check_idx; uint32_t sum; char *ptr; @@ -848,7 +848,7 @@ static void tcp_update_check_tcp6(const struct ipv6hdr *ip6h, return; } - check = (__sum16 *)ptr; + check = (uint16_t *)ptr; *check = 0; *check = csum_iov(iov, iov_cnt, l4offset, sum); -- 2.43.0
On Thu, Oct 31, 2024 at 08:14:32AM +0100, Stefano Brivio wrote:Use a plain uint16_t instead and avoid including one extra header: the 'bitwise' attribute of __sum16 is just used by sparse(1). Reported-by: omni <omni+alpine(a)hack.org> Fixes: 3d484aa37090 ("tcp: Update TCP checksum using an iovec array") Signed-off-by: Stefano Brivio <sbrivio(a)redhat.com>Reviewed-by: David Gibson <david(a)gibson.dropbear.id.au>--- v2: Use uint16_t instead of including linux/types.h tcp.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tcp.c b/tcp.c index 4e0a17e..56ceba6 100644 --- a/tcp.c +++ b/tcp.c @@ -766,7 +766,7 @@ static void tcp_update_check_tcp4(const struct iphdr *iph, struct in_addr saddr = { .s_addr = iph->saddr }; struct in_addr daddr = { .s_addr = iph->daddr }; size_t check_ofs; - __sum16 *check; + uint16_t *check; int check_idx; uint32_t sum; char *ptr; @@ -797,7 +797,7 @@ static void tcp_update_check_tcp4(const struct iphdr *iph, return; } - check = (__sum16 *)ptr; + check = (uint16_t *)ptr; *check = 0; *check = csum_iov(iov, iov_cnt, l4offset, sum); @@ -816,7 +816,7 @@ static void tcp_update_check_tcp6(const struct ipv6hdr *ip6h, { uint16_t l4len = ntohs(ip6h->payload_len); size_t check_ofs; - __sum16 *check; + uint16_t *check; int check_idx; uint32_t sum; char *ptr; @@ -848,7 +848,7 @@ static void tcp_update_check_tcp6(const struct ipv6hdr *ip6h, return; } - check = (__sum16 *)ptr; + check = (uint16_t *)ptr; *check = 0; *check = csum_iov(iov, iov_cnt, l4offset, sum);-- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson