summaryrefslogtreecommitdiffstats
path: root/net/ipv6/tcpv6_offload.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2014-05-19 21:56:34 -0700
committerDavid S. Miller <davem@davemloft.net>2014-05-21 17:18:47 -0400
commit4de462ab63e23953fd05da511aeb460ae10cc726 (patch)
treec69385d148fb52f0f8f659f8261497ab428d820d /net/ipv6/tcpv6_offload.c
parentbf63ac73b3e132e6bf0c8798aba7b277c3316e19 (diff)
downloadlinux-stable-4de462ab63e23953fd05da511aeb460ae10cc726.tar.gz
linux-stable-4de462ab63e23953fd05da511aeb460ae10cc726.tar.bz2
linux-stable-4de462ab63e23953fd05da511aeb460ae10cc726.zip
ipv6: gro: fix CHECKSUM_COMPLETE support
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>
Diffstat (limited to 'net/ipv6/tcpv6_offload.c')
-rw-r--r--net/ipv6/tcpv6_offload.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/tcpv6_offload.c b/net/ipv6/tcpv6_offload.c
index 0d78132ff18a..8517d3cd1aed 100644
--- a/net/ipv6/tcpv6_offload.c
+++ b/net/ipv6/tcpv6_offload.c
@@ -42,7 +42,7 @@ static struct sk_buff **tcp6_gro_receive(struct sk_buff **head,
if (NAPI_GRO_CB(skb)->flush)
goto skip_csum;
- wsum = skb->csum;
+ wsum = NAPI_GRO_CB(skb)->csum;
switch (skb->ip_summed) {
case CHECKSUM_NONE: