summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Kravkov <dmitry@broadcom.com>2013-02-18 09:50:52 +0000
committerDavid S. Miller <davem@davemloft.net>2013-02-19 00:51:09 -0500
commitaa0e51cdda005cd37e23751de54443b1e73e7def (patch)
treecd2d521d1c3bf360496c7eeda9b1739f93d088a0
parente0809dbc47dea83eba7a9abb70e87470904d4372 (diff)
downloadlinux-aa0e51cdda005cd37e23751de54443b1e73e7def.tar.gz
linux-aa0e51cdda005cd37e23751de54443b1e73e7def.tar.bz2
linux-aa0e51cdda005cd37e23751de54443b1e73e7def.zip
ip_gre: allow CSUM capable devices to handle packets
If device is not able to handle checksumming it will be handled in dev_xmit Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/ip_gre.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index a56f1182c176..cdc31ac4a9df 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -745,12 +745,9 @@ static struct sk_buff *handle_offloads(struct sk_buff *skb)
goto error;
skb_shinfo(skb)->gso_type |= SKB_GSO_GRE;
return skb;
- } else if (skb->ip_summed == CHECKSUM_PARTIAL) {
- err = skb_checksum_help(skb);
- if (unlikely(err))
- goto error;
}
- skb->ip_summed = CHECKSUM_NONE;
+ if (skb->ip_summed != CHECKSUM_PARTIAL)
+ skb->ip_summed = CHECKSUM_NONE;
return skb;