On Fri, Nov 04, 2022 at 01:51:39AM -0400, Steven Rostedt wrote: > 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. > I'll run a test on the other series without change first. We'll see what happens. If necessary I'll add [parts of] this patch and re-test, but before doing that I would like to get a sense for the status of your series as-is. Thanks, Guenter