]> Pileus Git - ~andy/linux/blobdiff - net/ipv4/tcp_input.c
net: Fix possible wrong checksum generation.
[~andy/linux] / net / ipv4 / tcp_input.c
index d9bfaea34322e023496cb557408ae70049439d82..a759e19496d2f57f508db27f21ab73b2b320523a 100644 (file)
@@ -1239,13 +1239,13 @@ static bool tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
         */
        if (!skb_shinfo(prev)->gso_size) {
                skb_shinfo(prev)->gso_size = mss;
-               skb_shinfo(prev)->gso_type |= sk->sk_gso_type;
+               skb_shinfo(prev)->gso_type = sk->sk_gso_type;
        }
 
        /* CHECKME: To clear or not to clear? Mimics normal skb currently */
        if (skb_shinfo(skb)->gso_segs <= 1) {
                skb_shinfo(skb)->gso_size = 0;
-               skb_shinfo(skb)->gso_type &= SKB_GSO_SHARED_FRAG;
+               skb_shinfo(skb)->gso_type = 0;
        }
 
        /* Difference in this won't matter, both ACKed by the same cumul. ACK */