diff options
author | Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> | 2007-08-09 07:44:16 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:47:57 -0400 |
commit | 005903bc3a0e8473fef809e8775db52dcd3cde63 (patch) | |
tree | 4fd945740a3615dbd5493fa0ded13f0352e21b2c /net | |
parent | 83ae40885f33e406c87c86b0bd4b6fd31a741f12 (diff) |
[TCP]: Left out sync->verify (the new meaning of it) & definify
Left_out was dropped a while ago, thus leaving verifying
consistency of the "left out" as only task for the function in
question. Thus make it's name more appropriate.
In addition, it is intentionally converted to #define instead
of static inline because the location of the invariant failure
is the most important thing to have if this ever triggers. I
think it would have been helpful e.g. in this case where the
location of the failure point had to be based on some quesswork:
http://lkml.org/lkml/2007/5/2/464
...Luckily the guesswork seems to have proved to be correct.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_input.c | 20 | ||||
-rw-r--r-- | net/ipv4/tcp_output.c | 4 |
2 files changed, 12 insertions, 12 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 6bdd053e252f..b11bd1624227 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -1383,7 +1383,7 @@ static void tcp_add_reno_sack(struct sock *sk) | |||
1383 | struct tcp_sock *tp = tcp_sk(sk); | 1383 | struct tcp_sock *tp = tcp_sk(sk); |
1384 | tp->sacked_out++; | 1384 | tp->sacked_out++; |
1385 | tcp_check_reno_reordering(sk, 0); | 1385 | tcp_check_reno_reordering(sk, 0); |
1386 | tcp_sync_left_out(tp); | 1386 | tcp_verify_left_out(tp); |
1387 | } | 1387 | } |
1388 | 1388 | ||
1389 | /* Account for ACK, ACKing some data in Reno Recovery phase. */ | 1389 | /* Account for ACK, ACKing some data in Reno Recovery phase. */ |
@@ -1400,7 +1400,7 @@ static void tcp_remove_reno_sacks(struct sock *sk, int acked) | |||
1400 | tp->sacked_out -= acked-1; | 1400 | tp->sacked_out -= acked-1; |
1401 | } | 1401 | } |
1402 | tcp_check_reno_reordering(sk, acked); | 1402 | tcp_check_reno_reordering(sk, acked); |
1403 | tcp_sync_left_out(tp); | 1403 | tcp_verify_left_out(tp); |
1404 | } | 1404 | } |
1405 | 1405 | ||
1406 | static inline void tcp_reset_reno_sack(struct tcp_sock *tp) | 1406 | static inline void tcp_reset_reno_sack(struct tcp_sock *tp) |
@@ -1496,7 +1496,7 @@ void tcp_enter_frto(struct sock *sk) | |||
1496 | TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_RETRANS; | 1496 | TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_RETRANS; |
1497 | tp->retrans_out -= tcp_skb_pcount(skb); | 1497 | tp->retrans_out -= tcp_skb_pcount(skb); |
1498 | } | 1498 | } |
1499 | tcp_sync_left_out(tp); | 1499 | tcp_verify_left_out(tp); |
1500 | 1500 | ||
1501 | /* Earlier loss recovery underway (see RFC4138; Appendix B). | 1501 | /* Earlier loss recovery underway (see RFC4138; Appendix B). |
1502 | * The last condition is necessary at least in tp->frto_counter case. | 1502 | * The last condition is necessary at least in tp->frto_counter case. |
@@ -1551,7 +1551,7 @@ static void tcp_enter_frto_loss(struct sock *sk, int allowed_segments, int flag) | |||
1551 | tp->lost_out += tcp_skb_pcount(skb); | 1551 | tp->lost_out += tcp_skb_pcount(skb); |
1552 | } | 1552 | } |
1553 | } | 1553 | } |
1554 | tcp_sync_left_out(tp); | 1554 | tcp_verify_left_out(tp); |
1555 | 1555 | ||
1556 | tp->snd_cwnd = tcp_packets_in_flight(tp) + allowed_segments; | 1556 | tp->snd_cwnd = tcp_packets_in_flight(tp) + allowed_segments; |
1557 | tp->snd_cwnd_cnt = 0; | 1557 | tp->snd_cwnd_cnt = 0; |
@@ -1626,7 +1626,7 @@ void tcp_enter_loss(struct sock *sk, int how) | |||
1626 | tp->fackets_out = cnt; | 1626 | tp->fackets_out = cnt; |
1627 | } | 1627 | } |
1628 | } | 1628 | } |
1629 | tcp_sync_left_out(tp); | 1629 | tcp_verify_left_out(tp); |
1630 | 1630 | ||
1631 | tp->reordering = min_t(unsigned int, tp->reordering, | 1631 | tp->reordering = min_t(unsigned int, tp->reordering, |
1632 | sysctl_tcp_reordering); | 1632 | sysctl_tcp_reordering); |
@@ -1861,7 +1861,7 @@ static void tcp_mark_head_lost(struct sock *sk, | |||
1861 | tcp_verify_retransmit_hint(tp, skb); | 1861 | tcp_verify_retransmit_hint(tp, skb); |
1862 | } | 1862 | } |
1863 | } | 1863 | } |
1864 | tcp_sync_left_out(tp); | 1864 | tcp_verify_left_out(tp); |
1865 | } | 1865 | } |
1866 | 1866 | ||
1867 | /* Account newly detected lost packet(s) */ | 1867 | /* Account newly detected lost packet(s) */ |
@@ -1905,7 +1905,7 @@ static void tcp_update_scoreboard(struct sock *sk) | |||
1905 | 1905 | ||
1906 | tp->scoreboard_skb_hint = skb; | 1906 | tp->scoreboard_skb_hint = skb; |
1907 | 1907 | ||
1908 | tcp_sync_left_out(tp); | 1908 | tcp_verify_left_out(tp); |
1909 | } | 1909 | } |
1910 | } | 1910 | } |
1911 | 1911 | ||
@@ -2217,8 +2217,8 @@ tcp_fastretrans_alert(struct sock *sk, int prior_packets, int flag) | |||
2217 | NET_INC_STATS_BH(LINUX_MIB_TCPLOSS); | 2217 | NET_INC_STATS_BH(LINUX_MIB_TCPLOSS); |
2218 | } | 2218 | } |
2219 | 2219 | ||
2220 | /* D. Synchronize left_out to current state. */ | 2220 | /* D. Check consistency of the current state. */ |
2221 | tcp_sync_left_out(tp); | 2221 | tcp_verify_left_out(tp); |
2222 | 2222 | ||
2223 | /* E. Check state exit conditions. State can be terminated | 2223 | /* E. Check state exit conditions. State can be terminated |
2224 | * when high_seq is ACKed. */ | 2224 | * when high_seq is ACKed. */ |
@@ -2765,7 +2765,7 @@ static int tcp_process_frto(struct sock *sk, int flag) | |||
2765 | { | 2765 | { |
2766 | struct tcp_sock *tp = tcp_sk(sk); | 2766 | struct tcp_sock *tp = tcp_sk(sk); |
2767 | 2767 | ||
2768 | tcp_sync_left_out(tp); | 2768 | tcp_verify_left_out(tp); |
2769 | 2769 | ||
2770 | /* Duplicate the behavior from Loss state (fastretrans_alert) */ | 2770 | /* Duplicate the behavior from Loss state (fastretrans_alert) */ |
2771 | if (flag&FLAG_DATA_ACKED) | 2771 | if (flag&FLAG_DATA_ACKED) |
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 7434944caa8f..a92fad55cd32 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -739,7 +739,7 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len, unsigned int mss | |||
739 | /* Adjust Reno SACK estimate. */ | 739 | /* Adjust Reno SACK estimate. */ |
740 | if (!tp->rx_opt.sack_ok) { | 740 | if (!tp->rx_opt.sack_ok) { |
741 | tcp_dec_pcount_approx_int(&tp->sacked_out, diff); | 741 | tcp_dec_pcount_approx_int(&tp->sacked_out, diff); |
742 | tcp_sync_left_out(tp); | 742 | tcp_verify_left_out(tp); |
743 | } | 743 | } |
744 | 744 | ||
745 | tcp_dec_pcount_approx_int(&tp->fackets_out, diff); | 745 | tcp_dec_pcount_approx_int(&tp->fackets_out, diff); |
@@ -1774,7 +1774,7 @@ void tcp_simple_retransmit(struct sock *sk) | |||
1774 | if (!lost) | 1774 | if (!lost) |
1775 | return; | 1775 | return; |
1776 | 1776 | ||
1777 | tcp_sync_left_out(tp); | 1777 | tcp_verify_left_out(tp); |
1778 | 1778 | ||
1779 | /* Don't muck with the congestion window here. | 1779 | /* Don't muck with the congestion window here. |
1780 | * Reason is that we do not increase amount of _data_ | 1780 | * Reason is that we do not increase amount of _data_ |