Browse Source

[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>
David S. Miller 20 years ago
parent
commit
cb83199a29
1 changed files with 2 additions and 1 deletions
  1. 2 1
      net/ipv4/tcp_input.c

+ 2 - 1
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
 		 * the other end.
 		 * the other end.
 		 */
 		 */
 		if (after(scb->end_seq, tp->snd_una)) {
 		if (after(scb->end_seq, tp->snd_una)) {
-			if (tcp_skb_pcount(skb) > 1)
+			if (tcp_skb_pcount(skb) > 1 &&
+			    after(tp->snd_una, scb->seq))
 				acked |= tcp_tso_acked(sk, skb,
 				acked |= tcp_tso_acked(sk, skb,
 						       now, &seq_rtt);
 						       now, &seq_rtt);
 			break;
 			break;