diff options
author | Damian Lukowski <damian@tvk.rwth-aachen.de> | 2009-12-07 06:06:16 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-08 20:56:11 -0800 |
commit | 2f7de5710a4d394920405febc2a9937c69e16dda (patch) | |
tree | 8f038451b643f68ab399009e769a74678feb5546 /include/net | |
parent | 07f29bc5bbae4e53e982ab956fed7207990a7786 (diff) | |
download | kernel_samsung_smdk4412-2f7de5710a4d394920405febc2a9937c69e16dda.zip kernel_samsung_smdk4412-2f7de5710a4d394920405febc2a9937c69e16dda.tar.gz kernel_samsung_smdk4412-2f7de5710a4d394920405febc2a9937c69e16dda.tar.bz2 |
tcp: Stalling connections: Move timeout calculation routine
This patch moves retransmits_timed_out() from include/net/tcp.h
to tcp_timer.c, where it is used.
Reported-by: Frederic Leroy <fredo@starox.org>
Signed-off-by: Damian Lukowski <damian@tvk.rwth-aachen.de>
Acked-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/tcp.h | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index e54bd85..0248c18 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -1261,34 +1261,6 @@ static inline struct sk_buff *tcp_write_queue_prev(struct sock *sk, struct sk_bu #define tcp_for_write_queue_from_safe(skb, tmp, sk) \ skb_queue_walk_from_safe(&(sk)->sk_write_queue, skb, tmp) -/* This function calculates a "timeout" which is equivalent to the timeout of a - * TCP connection after "boundary" unsucessful, exponentially backed-off - * retransmissions with an initial RTO of TCP_RTO_MIN. - */ -static inline bool retransmits_timed_out(struct sock *sk, - unsigned int boundary) -{ - unsigned int timeout, linear_backoff_thresh; - unsigned int start_ts; - - if (!inet_csk(sk)->icsk_retransmits) - return false; - - if (unlikely(!tcp_sk(sk)->retrans_stamp)) - start_ts = TCP_SKB_CB(tcp_write_queue_head(sk))->when; - else - start_ts = tcp_sk(sk)->retrans_stamp; - - linear_backoff_thresh = ilog2(TCP_RTO_MAX/TCP_RTO_MIN); - - if (boundary <= linear_backoff_thresh) - timeout = ((2 << boundary) - 1) * TCP_RTO_MIN; - else - timeout = ((2 << linear_backoff_thresh) - 1) * TCP_RTO_MIN + - (boundary - linear_backoff_thresh) * TCP_RTO_MAX; - - return (tcp_time_stamp - start_ts) >= timeout; -} static inline struct sk_buff *tcp_send_head(struct sock *sk) { |