Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 66262
b: refs/heads/master
c: 005903b
h: refs/heads/master
v: v3
  • Loading branch information
Ilpo Järvinen authored and David S. Miller committed Oct 10, 2007
1 parent c2a327a commit a11b0a4
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 83ae40885f33e406c87c86b0bd4b6fd31a741f12
refs/heads/master: 005903bc3a0e8473fef809e8775db52dcd3cde63
7 changes: 3 additions & 4 deletions trunk/include/net/tcp.h
Original file line number Diff line number Diff line change
Expand Up @@ -758,10 +758,9 @@ static inline __u32 tcp_current_ssthresh(const struct sock *sk)
(tp->snd_cwnd >> 2)));
}

static inline void tcp_sync_left_out(struct tcp_sock *tp)
{
BUG_ON(tp->rx_opt.sack_ok && (tcp_left_out(tp) > tp->packets_out));
}
/* Use define here intentionally to get BUG_ON location shown at the caller */
#define tcp_verify_left_out(tp) \
BUG_ON(tp->rx_opt.sack_ok && (tcp_left_out(tp) > tp->packets_out))

extern void tcp_enter_cwr(struct sock *sk, const int set_ssthresh);
extern __u32 tcp_init_cwnd(struct tcp_sock *tp, struct dst_entry *dst);
Expand Down
20 changes: 10 additions & 10 deletions trunk/net/ipv4/tcp_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -1383,7 +1383,7 @@ static void tcp_add_reno_sack(struct sock *sk)
struct tcp_sock *tp = tcp_sk(sk);
tp->sacked_out++;
tcp_check_reno_reordering(sk, 0);
tcp_sync_left_out(tp);
tcp_verify_left_out(tp);
}

/* Account for ACK, ACKing some data in Reno Recovery phase. */
Expand All @@ -1400,7 +1400,7 @@ static void tcp_remove_reno_sacks(struct sock *sk, int acked)
tp->sacked_out -= acked-1;
}
tcp_check_reno_reordering(sk, acked);
tcp_sync_left_out(tp);
tcp_verify_left_out(tp);
}

static inline void tcp_reset_reno_sack(struct tcp_sock *tp)
Expand Down Expand Up @@ -1496,7 +1496,7 @@ void tcp_enter_frto(struct sock *sk)
TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_RETRANS;
tp->retrans_out -= tcp_skb_pcount(skb);
}
tcp_sync_left_out(tp);
tcp_verify_left_out(tp);

/* Earlier loss recovery underway (see RFC4138; Appendix B).
* The last condition is necessary at least in tp->frto_counter case.
Expand Down Expand Up @@ -1551,7 +1551,7 @@ static void tcp_enter_frto_loss(struct sock *sk, int allowed_segments, int flag)
tp->lost_out += tcp_skb_pcount(skb);
}
}
tcp_sync_left_out(tp);
tcp_verify_left_out(tp);

tp->snd_cwnd = tcp_packets_in_flight(tp) + allowed_segments;
tp->snd_cwnd_cnt = 0;
Expand Down Expand Up @@ -1626,7 +1626,7 @@ void tcp_enter_loss(struct sock *sk, int how)
tp->fackets_out = cnt;
}
}
tcp_sync_left_out(tp);
tcp_verify_left_out(tp);

tp->reordering = min_t(unsigned int, tp->reordering,
sysctl_tcp_reordering);
Expand Down Expand Up @@ -1861,7 +1861,7 @@ static void tcp_mark_head_lost(struct sock *sk,
tcp_verify_retransmit_hint(tp, skb);
}
}
tcp_sync_left_out(tp);
tcp_verify_left_out(tp);
}

/* Account newly detected lost packet(s) */
Expand Down Expand Up @@ -1905,7 +1905,7 @@ static void tcp_update_scoreboard(struct sock *sk)

tp->scoreboard_skb_hint = skb;

tcp_sync_left_out(tp);
tcp_verify_left_out(tp);
}
}

Expand Down Expand Up @@ -2217,8 +2217,8 @@ tcp_fastretrans_alert(struct sock *sk, int prior_packets, int flag)
NET_INC_STATS_BH(LINUX_MIB_TCPLOSS);
}

/* D. Synchronize left_out to current state. */
tcp_sync_left_out(tp);
/* D. Check consistency of the current state. */
tcp_verify_left_out(tp);

/* E. Check state exit conditions. State can be terminated
* when high_seq is ACKed. */
Expand Down Expand Up @@ -2765,7 +2765,7 @@ static int tcp_process_frto(struct sock *sk, int flag)
{
struct tcp_sock *tp = tcp_sk(sk);

tcp_sync_left_out(tp);
tcp_verify_left_out(tp);

/* Duplicate the behavior from Loss state (fastretrans_alert) */
if (flag&FLAG_DATA_ACKED)
Expand Down
4 changes: 2 additions & 2 deletions trunk/net/ipv4/tcp_output.c
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss
/* Adjust Reno SACK estimate. */
if (!tp->rx_opt.sack_ok) {
tcp_dec_pcount_approx_int(&tp->sacked_out, diff);
tcp_sync_left_out(tp);
tcp_verify_left_out(tp);
}

tcp_dec_pcount_approx_int(&tp->fackets_out, diff);
Expand Down Expand Up @@ -1774,7 +1774,7 @@ void tcp_simple_retransmit(struct sock *sk)
if (!lost)
return;

tcp_sync_left_out(tp);
tcp_verify_left_out(tp);

/* Don't muck with the congestion window here.
* Reason is that we do not increase amount of _data_
Expand Down

0 comments on commit a11b0a4

Please sign in to comment.