ipv6: update skb->csum when CE mark is propagated
authorEric Dumazet <edumazet@google.com>
Fri, 15 Jan 2016 12:56:56 +0000 (04:56 -0800)
committerBen Hutchings <ben@decadent.org.uk>
Sat, 30 Apr 2016 22:05:25 +0000 (00:05 +0200)
commit58b45f408a8821b6d9f0003c3fdfa179145c90e7
treea95269b3623b4378559ece908e46f499cc0adee8
parent37e9e7ac0e4c75dc516aa1f552ad4b2d8b72a89f
ipv6: update skb->csum when CE mark is propagated

[ Upstream commit 34ae6a1aa0540f0f781dd265366036355fdc8930 ]

When a tunnel decapsulates the outer header, it has to comply
with RFC 6080 and eventually propagate CE mark into inner header.

It turns out IP6_ECN_set_ce() does not correctly update skb->csum
for CHECKSUM_COMPLETE packets, triggering infamous "hw csum failure"
messages and stack traces.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.2:
 - Adjust context
 - Add skb argument to other callers of IP6_ECN_set_ce()]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
include/net/inet_ecn.h
net/ipv4/ip_gre.c
net/ipv6/ip6_tunnel.c
net/ipv6/sit.c
net/ipv6/xfrm6_mode_tunnel.c