ipv6: gro: fix CHECKSUM_COMPLETE support
authorEric Dumazet <edumazet@google.com>
Tue, 20 May 2014 04:56:34 +0000 (21:56 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 May 2014 20:20:39 +0000 (13:20 -0700)
commitff9cfa6b917a903fe24dba928dca61d0c9339864
tree7cc8606ffac6006dea5eb748fe6a45b45e7c3357
parent1ff9c00a7a14af5c848d00eb264cb4e6c9cb30a6
ipv6: gro: fix CHECKSUM_COMPLETE support

[ Upstream commit 4de462ab63e23953fd05da511aeb460ae10cc726 ]

When GRE support was added in linux-3.14, CHECKSUM_COMPLETE handling
broke on GRE+IPv6 because we did not update/use the appropriate csum :

GRO layer is supposed to use/update NAPI_GRO_CB(skb)->csum instead of
skb->csum

Tested using a GRE tunnel and IPv6 traffic. GRO aggregation now happens
at the first level (ethernet device) instead of being done in gre
tunnel. Native IPv6+TCP is still properly aggregated.

Fixes: bf5a755f5e918 ("net-gre-gro: Add GRE support to the GRO stack")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Jerry Chu <hkchu@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv6/ip6_offload.c
net/ipv6/tcpv6_offload.c