Commit bf250a1f authored by Vlad Yasevich's avatar Vlad Yasevich Committed by David S. Miller

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: 32dce968 (ipv6: Allow for partial checksums on non-ufo packets)
Reported-by: default avatarSabrina Dubroca <sd@queasysnail.net>
Tested-by: default avatarSabrina Dubroca <sd@queasysnail.net>
Signed-off-by: default avatarVladislav Yasevich <vyasevic@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4a3046d6
...@@ -1273,7 +1273,7 @@ static int __ip6_append_data(struct sock *sk, ...@@ -1273,7 +1273,7 @@ static int __ip6_append_data(struct sock *sk,
/* If this is the first and only packet and device /* If this is the first and only packet and device
* supports checksum offloading, let's use it. * supports checksum offloading, let's use it.
*/ */
if (!skb && if (!skb && sk->sk_protocol == IPPROTO_UDP &&
length + fragheaderlen < mtu && length + fragheaderlen < mtu &&
rt->dst.dev->features & NETIF_F_V6_CSUM && rt->dst.dev->features & NETIF_F_V6_CSUM &&
!exthdrlen) !exthdrlen)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment