diff options
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_output.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index b16556836d66..215af2b155cb 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c | |||
@@ -855,11 +855,15 @@ static int __ip_append_data(struct sock *sk, | |||
855 | unsigned int maxfraglen, fragheaderlen, maxnonfragsize; | 855 | unsigned int maxfraglen, fragheaderlen, maxnonfragsize; |
856 | int csummode = CHECKSUM_NONE; | 856 | int csummode = CHECKSUM_NONE; |
857 | struct rtable *rt = (struct rtable *)cork->dst; | 857 | struct rtable *rt = (struct rtable *)cork->dst; |
858 | u32 tskey = 0; | ||
858 | 859 | ||
859 | skb = skb_peek_tail(queue); | 860 | skb = skb_peek_tail(queue); |
860 | 861 | ||
861 | exthdrlen = !skb ? rt->dst.header_len : 0; | 862 | exthdrlen = !skb ? rt->dst.header_len : 0; |
862 | mtu = cork->fragsize; | 863 | mtu = cork->fragsize; |
864 | if (cork->tx_flags & SKBTX_ANY_SW_TSTAMP && | ||
865 | sk->sk_tsflags & SOF_TIMESTAMPING_OPT_ID) | ||
866 | tskey = sk->sk_tskey++; | ||
863 | 867 | ||
864 | hh_len = LL_RESERVED_SPACE(rt->dst.dev); | 868 | hh_len = LL_RESERVED_SPACE(rt->dst.dev); |
865 | 869 | ||
@@ -976,6 +980,8 @@ alloc_new_skb: | |||
976 | /* only the initial fragment is time stamped */ | 980 | /* only the initial fragment is time stamped */ |
977 | skb_shinfo(skb)->tx_flags = cork->tx_flags; | 981 | skb_shinfo(skb)->tx_flags = cork->tx_flags; |
978 | cork->tx_flags = 0; | 982 | cork->tx_flags = 0; |
983 | skb_shinfo(skb)->tskey = tskey; | ||
984 | tskey = 0; | ||
979 | 985 | ||
980 | /* | 986 | /* |
981 | * Find where to start putting bytes. | 987 | * Find where to start putting bytes. |