diff options
author | Vlad Yasevich <vyasevich@gmail.com> | 2015-02-10 11:37:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-11 14:32:08 -0800 |
commit | bf250a1fa769f2eb8fc7a4e28b3b523e9cb67eef (patch) | |
tree | acbdd58a049f11502508ae1750f2a39a03cdcabb /net | |
parent | 4a3046d68a5a6b7a2474c9d65811091841675cdb (diff) | |
download | linux-bf250a1fa769f2eb8fc7a4e28b3b523e9cb67eef.tar.gz linux-bf250a1fa769f2eb8fc7a4e28b3b523e9cb67eef.tar.bz2 linux-bf250a1fa769f2eb8fc7a4e28b3b523e9cb67eef.zip |
ipv6: Partial checksum only UDP packets
ip6_append_data is used by other protocols and some of them can't
be partially checksummed. Only partially checksum UDP protocol.
Fixes: 32dce968dd987a (ipv6: Allow for partial checksums on non-ufo packets)
Reported-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv6/ip6_output.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index d33df4cbd872..7deebf102cba 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1273,7 +1273,7 @@ emsgsize: /* If this is the first and only packet and device * supports checksum offloading, let's use it. */ - if (!skb && + if (!skb && sk->sk_protocol == IPPROTO_UDP && length + fragheaderlen < mtu && rt->dst.dev->features & NETIF_F_V6_CSUM && !exthdrlen) |