aboutsummaryrefslogtreecommitdiff
path: root/net/ipv6/tcpv6_offload.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2014-05-19 21:56:34 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-31 13:20:39 -0700
commitff9cfa6b917a903fe24dba928dca61d0c9339864 (patch)
tree7cc8606ffac6006dea5eb748fe6a45b45e7c3357 /net/ipv6/tcpv6_offload.c
parent1ff9c00a7a14af5c848d00eb264cb4e6c9cb30a6 (diff)
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>
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: