Re: [PATCH net-next v4 13/15] quic: add timer management

Xin Long <[email protected]> Thu, 13 Nov 2025 16:23:47 -0500
Newsgroups dev.linux.lists.quic,dev.linux.lists.kernel-tls-handshake,org.kernel.vger.linux-cifs,org.kernel.vger.netdev
Message-ID <CADvbK_fi6GDOwpo_vRNWDXLn9v7Kys5zuz8RGNxFYEm6y0KcTQ@mail.gmail.com>
On Thu, Nov 6, 2025 at 11:49 AM Xin Long <[email protected]> wrote:
>
> On Tue, Nov 4, 2025 at 7:33 AM Paolo Abeni <[email protected]> wrote:
> >
> > On 10/29/25 3:35 PM, Xin Long wrote:
> > > +void quic_timer_stop(struct sock *sk, u8 type)
> > > +{
> > > +     if (type == QUIC_TIMER_PACE) {
> > > +             if (hrtimer_try_to_cancel(quic_timer(sk, type)) == 1)
> > > +                     sock_put(sk);
> > > +             return;
> > > +     }
> > > +     if (timer_delete(quic_timer(sk, type)))
> >
> > timer_shutdown()
> Will update. Thanks.
timer_shutdown() sets timer->function to NULL, and it causes mod_timer()
to return 0 without enqueuing the timer. This breaks the code:

                if (!mod_timer(t, jiffies + usecs_to_jiffies(timeout)))
                        sock_hold(sk);

in quic_timer_start(), and cause sk leak.

So I will keep timer_delete() here.

Thanks.

>
> >
> > Other than that:
> >
> > Acked-by: Paolo Abeni <[email protected]>
> >