diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_input.c | 6 | ||||
-rw-r--r-- | net/socket.c | 2 |
2 files changed, 8 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 | ||
diff --git a/net/socket.c b/net/socket.c index 3a2778d71631..ae89569a2db5 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -619,6 +619,8 @@ void sock_tx_timestamp(struct sock *sk, __u8 *tx_flags) | |||
619 | *tx_flags |= SKBTX_SW_TSTAMP; | 619 | *tx_flags |= SKBTX_SW_TSTAMP; |
620 | if (sk->sk_tsflags & SOF_TIMESTAMPING_TX_SCHED) | 620 | if (sk->sk_tsflags & SOF_TIMESTAMPING_TX_SCHED) |
621 | *tx_flags |= SKBTX_SCHED_TSTAMP; | 621 | *tx_flags |= SKBTX_SCHED_TSTAMP; |
622 | if (sk->sk_tsflags & SOF_TIMESTAMPING_TX_ACK) | ||
623 | *tx_flags |= SKBTX_ACK_TSTAMP; | ||
622 | 624 | ||
623 | if (sock_flag(sk, SOCK_WIFI_STATUS)) | 625 | if (sock_flag(sk, SOCK_WIFI_STATUS)) |
624 | *tx_flags |= SKBTX_WIFI_STATUS; | 626 | *tx_flags |= SKBTX_WIFI_STATUS; |