diff options
author | David S. Miller <davem@davemloft.net> | 2005-07-05 18:20:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-07-05 18:20:55 -0400 |
commit | cb83199a29dc0408423d6df432f28cc67fcadaf4 (patch) | |
tree | 3f6101b6657da5131d19a507ae264675799527df /net | |
parent | a56476962e92a6c389a1a561274d4a27607b7b5f (diff) |
[TCP]: Do not call tcp_tso_acked() if no work to do.
In tcp_clean_rtx_queue(), if the TSO packet is not even partially
acked, do not waste time calling tcp_tso_acked().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_input.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 1dba7fd438da..b948e4eb39b7 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -2038,7 +2038,8 @@ static int tcp_clean_rtx_queue(struct sock *sk, __s32 *seq_rtt_p, s32 *seq_usrtt | |||
2038 | * the other end. | 2038 | * the other end. |
2039 | */ | 2039 | */ |
2040 | if (after(scb->end_seq, tp->snd_una)) { | 2040 | if (after(scb->end_seq, tp->snd_una)) { |
2041 | if (tcp_skb_pcount(skb) > 1) | 2041 | if (tcp_skb_pcount(skb) > 1 && |
2042 | after(tp->snd_una, scb->seq)) | ||
2042 | acked |= tcp_tso_acked(sk, skb, | 2043 | acked |= tcp_tso_acked(sk, skb, |
2043 | now, &seq_rtt); | 2044 | now, &seq_rtt); |
2044 | break; | 2045 | break; |