diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 892ff256e235..39f1ac73bd5e 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -5834,6 +5834,7 @@ skip_this: break; memcpy(nskb->cb, skb->cb, sizeof(skb->cb)); + TCP_SKB_CB(nskb)->has_rxtstamp = false; skb_copy_decrypted(nskb, skb); TCP_SKB_CB(nskb)->seq = TCP_SKB_CB(nskb)->end_seq = start; if (list) @@ -5854,6 +5855,12 @@ skip_this: if (skb_copy_bits(skb, offset, skb_put(nskb, size), size)) BUG(); TCP_SKB_CB(nskb)->end_seq += size; + if (TCP_SKB_CB(skb)->has_rxtstamp) { + TCP_SKB_CB(nskb)->has_rxtstamp = true; + nskb->tstamp = skb->tstamp; + skb_hwtstamps(nskb)->hwtstamp = + skb_hwtstamps(skb)->hwtstamp; + } copy -= size; start += size; }