diff options
Diffstat (limited to 'net/ipv4/tcp_input.c')
-rw-r--r-- | net/ipv4/tcp_input.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index d6d0f9b6cdc6..aaf6f66677f9 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -2409,7 +2409,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, __s32 *seq_rtt_p) | |||
2409 | int acked = 0; | 2409 | int acked = 0; |
2410 | int prior_packets = tp->packets_out; | 2410 | int prior_packets = tp->packets_out; |
2411 | __s32 seq_rtt = -1; | 2411 | __s32 seq_rtt = -1; |
2412 | ktime_t last_ackt = ktime_set(0,0); | 2412 | ktime_t last_ackt = net_invalid_timestamp(); |
2413 | 2413 | ||
2414 | while ((skb = tcp_write_queue_head(sk)) && | 2414 | while ((skb = tcp_write_queue_head(sk)) && |
2415 | skb != tcp_send_head(sk)) { | 2415 | skb != tcp_send_head(sk)) { |
@@ -2487,6 +2487,10 @@ static int tcp_clean_rtx_queue(struct sock *sk, __s32 *seq_rtt_p) | |||
2487 | tcp_ack_update_rtt(sk, acked, seq_rtt); | 2487 | tcp_ack_update_rtt(sk, acked, seq_rtt); |
2488 | tcp_ack_packets_out(sk); | 2488 | tcp_ack_packets_out(sk); |
2489 | 2489 | ||
2490 | /* Is the ACK triggering packet unambiguous? */ | ||
2491 | if (acked & FLAG_RETRANS_DATA_ACKED) | ||
2492 | last_ackt = net_invalid_timestamp(); | ||
2493 | |||
2490 | if (ca_ops->pkts_acked) | 2494 | if (ca_ops->pkts_acked) |
2491 | ca_ops->pkts_acked(sk, pkts_acked, last_ackt); | 2495 | ca_ops->pkts_acked(sk, pkts_acked, last_ackt); |
2492 | } | 2496 | } |