On Fri, Aug 8, 2025 at 6:57 AM Jakub Kicinski <[email protected]> wrote: > > On Fri, 8 Aug 2025 06:51:06 -0700 Eric Dumazet wrote: > > > > Can a 2^32 wrap occur eventually ? > > > > > > Hm, good point. Is it good enough if we also check it in data_ready? > > > That way we should notice that someone is eating our data before > > > the seq had a chance to wrap? > > > > I could not understand what your suggestion was. > > > > Perhaps store both copued_seq and tp->bytes_received and > > > > check if (tp->bytes_received - strp->bytes_received) is smaller than 2^31 . > > > > if (unlikely(strp->copied_seq != tp->copied_seq || > > (tp->bytes_received - > > strp->bytes_received >= (1ULL < 31)) || > > WARN_ON(tcp_inq(strp->sk) < > > strp->stm.full_len))) { > > Nice, I think that would work. > I was wondering how to solve this yesterday and I realized the extra > condition isn't really needed. We just have to handle the inq < full_len > more carefully and remove the WARN_ON(). I posted a v2.
Ah I must have missed the v2, let me check it.
