diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index a254e4b5d968d..3dc633f393721 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -788,6 +788,10 @@ int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) } slow_path: + if ((skb->ip_summed == CHECKSUM_PARTIAL) && + skb_checksum_help(skb)) + goto fail; + left = skb->len - hlen; /* Space per frame */ ptr = hlen; /* Where to start from */