|
@@ -711,7 +711,6 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
|
|
|
TCP_SKB_CB(skb)->flags = flags & ~(TCPCB_FLAG_FIN|TCPCB_FLAG_PSH);
|
|
|
TCP_SKB_CB(buff)->flags = flags;
|
|
|
TCP_SKB_CB(buff)->sacked = TCP_SKB_CB(skb)->sacked;
|
|
|
- TCP_SKB_CB(skb)->sacked &= ~TCPCB_AT_TAIL;
|
|
|
|
|
|
if (!skb_shinfo(skb)->nr_frags && skb->ip_summed != CHECKSUM_PARTIAL) {
|
|
|
/* Copy and checksum data tail into the new buffer. */
|
|
@@ -1726,7 +1725,7 @@ static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *skb, int m
|
|
|
/* All done, get rid of second SKB and account for it so
|
|
|
* packet counting does not break.
|
|
|
*/
|
|
|
- TCP_SKB_CB(skb)->sacked |= TCP_SKB_CB(next_skb)->sacked&(TCPCB_EVER_RETRANS|TCPCB_AT_TAIL);
|
|
|
+ TCP_SKB_CB(skb)->sacked |= TCP_SKB_CB(next_skb)->sacked & TCPCB_EVER_RETRANS;
|
|
|
if (TCP_SKB_CB(next_skb)->sacked&TCPCB_SACKED_RETRANS)
|
|
|
tp->retrans_out -= tcp_skb_pcount(next_skb);
|
|
|
if (TCP_SKB_CB(next_skb)->sacked&TCPCB_LOST)
|
|
@@ -2475,7 +2474,7 @@ static int tcp_xmit_probe_skb(struct sock *sk, int urgent)
|
|
|
skb_reserve(skb, MAX_TCP_HEADER);
|
|
|
skb->csum = 0;
|
|
|
TCP_SKB_CB(skb)->flags = TCPCB_FLAG_ACK;
|
|
|
- TCP_SKB_CB(skb)->sacked = urgent;
|
|
|
+ TCP_SKB_CB(skb)->sacked = 0;
|
|
|
skb_shinfo(skb)->gso_segs = 1;
|
|
|
skb_shinfo(skb)->gso_size = 0;
|
|
|
skb_shinfo(skb)->gso_type = 0;
|
|
@@ -2527,7 +2526,7 @@ int tcp_write_wakeup(struct sock *sk)
|
|
|
} else {
|
|
|
if (tp->urg_mode &&
|
|
|
between(tp->snd_up, tp->snd_una+1, tp->snd_una+0xFFFF))
|
|
|
- tcp_xmit_probe_skb(sk, TCPCB_URG);
|
|
|
+ tcp_xmit_probe_skb(sk, 1);
|
|
|
return tcp_xmit_probe_skb(sk, 0);
|
|
|
}
|
|
|
}
|