diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/tcp_input.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 6a2984507755..a3d47af01906 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -74,6 +74,7 @@ | |||
74 | #include <linux/ipsec.h> | 74 | #include <linux/ipsec.h> |
75 | #include <asm/unaligned.h> | 75 | #include <asm/unaligned.h> |
76 | #include <net/netdma.h> | 76 | #include <net/netdma.h> |
77 | #include <linux/errqueue.h> | ||
77 | 78 | ||
78 | int sysctl_tcp_timestamps __read_mostly = 1; | 79 | int sysctl_tcp_timestamps __read_mostly = 1; |
79 | int sysctl_tcp_window_scaling __read_mostly = 1; | 80 | int sysctl_tcp_window_scaling __read_mostly = 1; |
@@ -3106,6 +3107,11 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets, | |||
3106 | tp->retrans_stamp = 0; | 3107 | tp->retrans_stamp = 0; |
3107 | } | 3108 | } |
3108 | 3109 | ||
3110 | if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_ACK_TSTAMP) && | ||
3111 | between(skb_shinfo(skb)->tskey, prior_snd_una, | ||
3112 | tp->snd_una + 1)) | ||
3113 | __skb_tstamp_tx(skb, NULL, sk, SCM_TSTAMP_ACK); | ||
3114 | |||
3109 | if (!fully_acked) | 3115 | if (!fully_acked) |
3110 | break; | 3116 | break; |
3111 | 3117 | ||