diff options
Diffstat (limited to 'include/net/tcp.h')
| -rw-r--r-- | include/net/tcp.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index a385797f160a..ef8f9d4dae85 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
| @@ -736,9 +736,7 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk) | |||
| 736 | 736 | ||
| 737 | static inline void tcp_sync_left_out(struct tcp_sock *tp) | 737 | static inline void tcp_sync_left_out(struct tcp_sock *tp) |
| 738 | { | 738 | { |
| 739 | if (tp->rx_opt.sack_ok && | 739 | BUG_ON(tp->sacked_out + tp->lost_out > tp->packets_out); |
| 740 | (tp->sacked_out >= tp->packets_out - tp->lost_out)) | ||
| 741 | tp->sacked_out = tp->packets_out - tp->lost_out; | ||
| 742 | tp->left_out = tp->sacked_out + tp->lost_out; | 740 | tp->left_out = tp->sacked_out + tp->lost_out; |
| 743 | } | 741 | } |
| 744 | 742 | ||
| @@ -1201,9 +1199,14 @@ static inline struct sk_buff *tcp_send_head(struct sock *sk) | |||
| 1201 | 1199 | ||
| 1202 | static inline void tcp_advance_send_head(struct sock *sk, struct sk_buff *skb) | 1200 | static inline void tcp_advance_send_head(struct sock *sk, struct sk_buff *skb) |
| 1203 | { | 1201 | { |
| 1202 | struct tcp_sock *tp = tcp_sk(sk); | ||
| 1203 | |||
| 1204 | sk->sk_send_head = skb->next; | 1204 | sk->sk_send_head = skb->next; |
| 1205 | if (sk->sk_send_head == (struct sk_buff *)&sk->sk_write_queue) | 1205 | if (sk->sk_send_head == (struct sk_buff *)&sk->sk_write_queue) |
| 1206 | sk->sk_send_head = NULL; | 1206 | sk->sk_send_head = NULL; |
| 1207 | /* Don't override Nagle indefinately with F-RTO */ | ||
| 1208 | if (tp->frto_counter == 2) | ||
| 1209 | tp->frto_counter = 3; | ||
| 1207 | } | 1210 | } |
| 1208 | 1211 | ||
| 1209 | static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unlinked) | 1212 | static inline void tcp_check_send_head(struct sock *sk, struct sk_buff *skb_unlinked) |
