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.

Reply via email to