Like txstamp_ack bit, if needed, the eor_info bit should also be carried to the new skb2 when splitting a skb or to the prev skb from the next_skb when collapsing skbs.
Signed-off-by: Martin KaFai Lau <ka...@fb.com> Cc: Eric Dumazet <eduma...@google.com> Cc: Neal Cardwell <ncardw...@google.com> Cc: Soheil Hassas Yeganeh <soheil.k...@gmail.com> Cc: Willem de Bruijn <will...@google.com> Cc: Yuchung Cheng <ych...@google.com> --- net/ipv4/tcp_output.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index d21a78f..e71336c 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c @@ -1125,6 +1125,8 @@ static void tcp_fragment_tstamp(struct sk_buff *skb, struct sk_buff *skb2) swap(shinfo->tskey, shinfo2->tskey); TCP_SKB_CB(skb2)->txstamp_ack = TCP_SKB_CB(skb)->txstamp_ack; TCP_SKB_CB(skb)->txstamp_ack = 0; + TCP_SKB_CB(skb2)->eor_info = TCP_SKB_CB(skb)->eor_info; + TCP_SKB_CB(skb)->eor_info = 0; } } @@ -2456,6 +2458,8 @@ void tcp_skb_collapse_tstamp(struct sk_buff *skb, shinfo->tskey = next_shinfo->tskey; TCP_SKB_CB(skb)->txstamp_ack = !!(shinfo->tx_flags & SKBTX_ACK_TSTAMP); + if (TCP_SKB_CB(next_skb)->eor_info) + TCP_SKB_CB(skb)->eor_info = 1; } } -- 2.5.1