From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 0CA8461038 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 3EB5160A8A Date: Fri, 4 Nov 2022 01:51:39 -0400 From: Steven Rostedt Message-ID: <20221104015139.58f17730@rorschach.local.home> In-Reply-To: References: <20221027150525.753064657@goodmis.org> <20221027150928.780676863@goodmis.org> <20221027155513.60b211e2@gandalf.local.home> <20221027163453.383bbf8e@gandalf.local.home> <20221027170720.31497319@gandalf.local.home> <20221027183511.66b058c4@gandalf.local.home> <20221028183149.2882a29b@gandalf.local.home> <20221028154617.3c63ba68@kernel.org> <27a6a587fee5e9172e41acd16ae1bc1f556fdbd7.camel@redhat.com> <20221103175123.744d0f37@rorschach.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Bridge] [RFC][PATCH v2 19/31] timers: net: Use del_timer_shutdown() before freeing timer List-Id: Linux Ethernet Bridging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Dumazet Cc: Alexei Starovoitov , Tony Nguyen , linux-afs@lists.infradead.org, Menglong Dong , bridge@lists.linux-foundation.org, Jesse Brandeburg , lvs-devel@vger.kernel.org, coreteam@netfilter.org, Jakub Kicinski , Paolo Abeni , Guenter Roeck , Martin KaFai Lau , Kuniyuki Iwashima , Thomas Gleixner , Mirko Lindner , linux-nfs@vger.kernel.org, tipc-discussion@lists.sourceforge.net, Stephen Boyd , linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, "David S. Miller" , netfilter-devel@vger.kernel.org, Linus Torvalds , Pavel Begunkov On Thu, 3 Nov 2022 17:00:20 -0700 Eric Dumazet 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