On Thu, 3 Nov 2022 17:00:20 -0700 Eric Dumazet <edumazet@xxxxxxxxxx> wrote: > inet_csk_clear_xmit_timers() can be called multiple times during TCP > socket lifetime. > > (See tcp_disconnect(), which can be followed by another connect() ... and loop) > > Maybe add a second parameter, or add a new > inet_csk_shutdown_xmit_timers() only called from tcp_v4_destroy_sock() ? > I guess. > > > > void inet_csk_delete_keepalive_timer(struct sock *sk) > > { > > - sk_stop_timer(sk, &sk->sk_timer); > > + sk_shutdown_timer(sk, &sk->sk_timer); > > SO_KEEPALIVE can be called multiple times in a TCP socket lifetime, > on/off/on/off/... > > I suggest leaving sk_stop_timer() here. > > Eventually inet_csk_clear_xmit_timers( sk, destroy=true) (or > inet_csk_shutdown_xmit_timers(()) > will be called before the socket is destroyed. OK. Guenter, I posted a new series, but did not include this change. If you want to test that other series, I would suggest to at least add the first part of this patch, otherwise it will trigger. But we want to see if there's other locations of issue that we should care about. -- Steve