From: Eric Dumazet <eduma...@google.com> Date: Thu, 18 Oct 2018 09:12:19 -0700
> Andrey reported the following warning triggered while running CRIU tests: > > tcp_clean_rtx_queue() > ... > last_ackt = tcp_skb_timestamp_us(skb); > WARN_ON_ONCE(last_ackt == 0); > > This is caused by 5f6188a8003d ("tcp: do not change tcp_wstamp_ns > in tcp_mstamp_refresh"), as we end up having skbs in retransmit queue > with a zero skb->skb_mstamp_ns field. > > We could fix this bug in different ways, like making sure > tp->tcp_wstamp_ns is not zero at socket creation, but as Neal pointed > out, we also do not want that pacing status of a repaired socket > could push tp->tcp_wstamp_ns far ahead in the future. > > So we prefer changing tcp_write_xmit() to not call tcp_update_skb_after_send() > and instead do what is requested by TCP_REPAIR logic. > > Fixes: 5f6188a8003d ("tcp: do not change tcp_wstamp_ns in tcp_mstamp_refresh") > Signed-off-by: Eric Dumazet <eduma...@google.com> > Reported-by: Andrey Vagin <ava...@openvz.org> > Acked-by: Soheil Hassas Yeganeh <soh...@google.com> > Acked-by: Neal Cardwell <ncardw...@google.com> Applied, thanks Eric.