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.

Reply via email to