X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=net%2Fipv4%2Ftcp_output.c;h=896e9dfbdb5cd9ca0fa003f6be2c5cd332dde7cf;hb=b50afd203a5ef1998c18d6519ad2b2c546d6af22;hp=7c777089a4d65361947ad531f4d94e0376df3afe;hpb=d6169b0206db1c8c8d0e4c6b79fdf4b2fc6455f1;p=cascardo%2Flinux.git diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 7c777089a4d6..896e9dfbdb5c 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1992,12 +1992,14 @@ static int tcp_mtu_probe(struct sock *sk) len = 0; tcp_for_write_queue_from_safe(skb, next, sk) { copy = min_t(int, skb->len, probe_size - len); - if (nskb->ip_summed) + if (nskb->ip_summed) { skb_copy_bits(skb, 0, skb_put(nskb, copy), copy); - else - nskb->csum = skb_copy_and_csum_bits(skb, 0, - skb_put(nskb, copy), - copy, nskb->csum); + } else { + __wsum csum = skb_copy_and_csum_bits(skb, 0, + skb_put(nskb, copy), + copy, 0); + nskb->csum = csum_block_add(nskb->csum, csum, len); + } if (skb->len <= copy) { /* We've eaten all the data from this skb.