diff options
author | Martin KaFai Lau <kafai@fb.com> | 2022-03-02 20:55:44 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-03-03 15:38:48 +0100 |
commit | d93376f503c7a586707925957592c0f16f4db0b1 (patch) | |
tree | 471448c84414795f0981f2f99997220dadbc2b40 /net/core/skbuff.c | |
parent | net: Handle delivery_time in skb->tstamp during network tapping with af_packet (diff) | |
download | linux-d93376f503c7a586707925957592c0f16f4db0b1.tar.xz linux-d93376f503c7a586707925957592c0f16f4db0b1.zip |
net: Clear mono_delivery_time bit in __skb_tstamp_tx()
In __skb_tstamp_tx(), it may clone the egress skb and queues the clone to
the sk_error_queue. The outgoing skb may have the mono delivery_time
while the (rcv) timestamp is expected for the clone, so the
skb->mono_delivery_time bit needs to be cleared from the clone.
This patch adds the skb->mono_delivery_time clearing to the existing
__net_timestamp() and use it in __skb_tstamp_tx().
The __net_timestamp() fast path usage in dev.c is changed to directly
call ktime_get_real() since the mono_delivery_time bit is not set at
that point.
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r-- | net/core/skbuff.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 9abb0028309f..e5082836295b 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -4851,7 +4851,7 @@ void __skb_tstamp_tx(struct sk_buff *orig_skb, if (hwtstamps) *skb_hwtstamps(skb) = *hwtstamps; else - skb->tstamp = ktime_get_real(); + __net_timestamp(skb); __skb_complete_tx_timestamp(skb, sk, tstype, opt_stats); } |