diff options
author | Willem de Bruijn <willemb@google.com> | 2014-08-06 15:09:44 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-08-06 14:09:01 -0700 |
commit | f066e2b091a50f0b76ade87250065d65996b93dd (patch) | |
tree | 433ad51129e91defe42fd78d16551bb425326704 /net/ipv4/tcp_offload.c | |
parent | be136ed30a4345e42ad846c1b9d925932dab303b (diff) | |
download | linux-exynos-f066e2b091a50f0b76ade87250065d65996b93dd.tar.gz linux-exynos-f066e2b091a50f0b76ade87250065d65996b93dd.tar.bz2 linux-exynos-f066e2b091a50f0b76ade87250065d65996b93dd.zip |
net-timestamp: cumulative tcp timestamping fixes
A set of small fixes pointed out just after the merge:
- make tcp_tx_timestamp static
- make tcp_gso_tstamp static
- use before() to compare TCP seqno, instead of cast to u64
- add tstamp to tx_flags in GSO, instead of overwrite tx_flags
- record skb_shinfo(skb)->tskey for all timestamps, also HW.
- optimization in tcp_tx_timestamp:
call sock_tx_timestamp only if a tstamp option is set.
Signed-off-by: Willem de Bruijn <willemb@google.com>
Fixes: 4ed2d765dfac ("net-timestamp: TCP timestamping")
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_offload.c')
-rw-r--r-- | net/ipv4/tcp_offload.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c index f597119fc4e7..bc1b83cb8309 100644 --- a/net/ipv4/tcp_offload.c +++ b/net/ipv4/tcp_offload.c @@ -14,12 +14,12 @@ #include <net/tcp.h> #include <net/protocol.h> -void tcp_gso_tstamp(struct sk_buff *skb, unsigned int ts_seq, unsigned int seq, - unsigned int mss) +static void tcp_gso_tstamp(struct sk_buff *skb, unsigned int ts_seq, + unsigned int seq, unsigned int mss) { while (skb) { - if (ts_seq < (__u64) seq + mss) { - skb_shinfo(skb)->tx_flags = SKBTX_SW_TSTAMP; + if (before(ts_seq, seq + mss)) { + skb_shinfo(skb)->tx_flags |= SKBTX_SW_TSTAMP; skb_shinfo(skb)->tskey = ts_seq; return; } |