diff options
-rw-r--r-- | net/ipv6/icmp.c | 2 | ||||
-rw-r--r-- | net/ipv6/raw.c | 2 |
2 files changed, 1 insertions, 3 deletions
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c index 52cca93ff2f8..bd51847acd57 100644 --- a/net/ipv6/icmp.c +++ b/net/ipv6/icmp.c | |||
@@ -247,8 +247,6 @@ static int icmpv6_push_pending_frames(struct sock *sk, struct flowi *fl, struct | |||
247 | len, fl->proto, tmp_csum); | 247 | len, fl->proto, tmp_csum); |
248 | icmp6h->icmp6_cksum = tmp_csum; | 248 | icmp6h->icmp6_cksum = tmp_csum; |
249 | } | 249 | } |
250 | if (icmp6h->icmp6_cksum == 0) | ||
251 | icmp6h->icmp6_cksum = -1; | ||
252 | ip6_push_pending_frames(sk); | 250 | ip6_push_pending_frames(sk); |
253 | out: | 251 | out: |
254 | return err; | 252 | return err; |
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 18a90075f942..813fa1d96862 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -536,7 +536,7 @@ static int rawv6_push_pending_frames(struct sock *sk, struct flowi *fl, | |||
536 | &fl->fl6_dst, | 536 | &fl->fl6_dst, |
537 | total_len, fl->proto, tmp_csum); | 537 | total_len, fl->proto, tmp_csum); |
538 | 538 | ||
539 | if (tmp_csum == 0) | 539 | if (tmp_csum == 0 && fl->proto == IPPROTO_UDP) |
540 | tmp_csum = -1; | 540 | tmp_csum = -1; |
541 | 541 | ||
542 | csum = tmp_csum; | 542 | csum = tmp_csum; |