aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/inet_ecn.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2016-08-12 07:48:21 +0200
committerDavid S. Miller <davem@davemloft.net>2016-08-13 15:08:00 -0700
commitc15c0ab12fd62f2b19181d05c62d24bc9fa55a42 (patch)
treea4cbc326af18b7d72de09cb187498ecb49440156 /include/net/inet_ecn.h
parentbpf: fix write helpers with regards to non-linear parts (diff)
downloadlinux-dev-c15c0ab12fd62f2b19181d05c62d24bc9fa55a42.tar.xz
linux-dev-c15c0ab12fd62f2b19181d05c62d24bc9fa55a42.zip
ipv6: suppress sparse warnings in IP6_ECN_set_ce()
Pass the correct type __wsum to csum_sub() and csum_add(). This doesn't really change anything since __wsum really *is* __be32, but removes the address space warnings from sparse. Cc: Eric Dumazet <edumazet@google.com> Fixes: 34ae6a1aa054 ("ipv6: update skb->csum when CE mark is propagated") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/inet_ecn.h')
-rw-r--r--include/net/inet_ecn.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/inet_ecn.h b/include/net/inet_ecn.h
index 0dc0a51da38f..dce2d586d9ce 100644
--- a/include/net/inet_ecn.h
+++ b/include/net/inet_ecn.h
@@ -128,7 +128,8 @@ static inline int IP6_ECN_set_ce(struct sk_buff *skb, struct ipv6hdr *iph)
to = from | htonl(INET_ECN_CE << 20);
*(__be32 *)iph = to;
if (skb->ip_summed == CHECKSUM_COMPLETE)
- skb->csum = csum_add(csum_sub(skb->csum, from), to);
+ skb->csum = csum_add(csum_sub(skb->csum, (__force __wsum)from),
+ (__force __wsum)to);
return 1;
}