Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52d570aabe921663a987b2e4bae2bdc411cee480
Commit:     52d570aabe921663a987b2e4bae2bdc411cee480
Parent:     bf1c1ee88008fd639ebb5c74f0555fd414369bdc
Author:     Jarek Poplawski <[EMAIL PROTECTED]>
AuthorDate: Tue Jan 23 22:07:12 2007 -0800
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Tue Jan 23 22:07:12 2007 -0800

    [TCP]: rare bad TCP checksum with 2.6.19
    
    The patch "Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE"
    changed to unconditional copying of ip_summed field from collapsed
    skb. This patch reverts this change.
    
    The majority of substantial work including heavy testing
    and diagnosing by: Michael Tokarev <[EMAIL PROTECTED]>
    Possible reasons pointed by: Herbert Xu and Patrick McHardy.
    
    Signed-off-by: Jarek Poplawski <[EMAIL PROTECTED]>
    Acked-by: Herbert Xu <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 net/ipv4/tcp_output.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 32c1a97..23e32c8 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -1650,7 +1650,8 @@ static void tcp_retrans_try_collapse(struct sock *sk, 
struct sk_buff *skb, int m
 
                memcpy(skb_put(skb, next_skb_size), next_skb->data, 
next_skb_size);
 
-               skb->ip_summed = next_skb->ip_summed;
+               if (next_skb->ip_summed == CHECKSUM_PARTIAL)
+                       skb->ip_summed = CHECKSUM_PARTIAL;
 
                if (skb->ip_summed != CHECKSUM_PARTIAL)
                        skb->csum = csum_block_add(skb->csum, next_skb->csum, 
skb_size);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to