From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mail19.linbit.com (LINBIT Mail Daemon) with ESMTP id 264E5421792 for ; Thu, 22 Dec 2022 11:02:15 +0100 (CET) Received: by mail-qk1-f197.google.com with SMTP id br6-20020a05620a460600b007021e1a5c48so909838qkb.6 for ; Thu, 22 Dec 2022 02:02:11 -0800 (PST) Message-ID: <8d91ab13f56e88af0f6133130808f9623b3adb2e.camel@redhat.com> From: Paolo Abeni To: Steven Rostedt , Linus Torvalds , Thomas Gleixner Date: Thu, 22 Dec 2022 11:02:01 +0100 In-Reply-To: <20221220134519.3dd1318b@gandalf.local.home> References: <20221220134519.3dd1318b@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: alsa-devel@alsa-project.org, linux-staging@lists.linux.dev, linux-sh@vger.kernel.org, dri-devel@lists.freedesktop.org, SHA-cyfmac-dev-list@infineon.com, linux-leds@vger.kernel.org, drbd-dev@lists.linbit.com, lvs-devel@vger.kernel.org, linux-nilfs@vger.kernel.org, linux-scsi@vger.kernel.org, linux-atm-general@lists.sourceforge.net, Julia Lawall , linux-acpi@vger.kernel.org, coreteam@netfilter.org, intel-wired-lan@lists.osuosl.org, linux-input@vger.kernel.org, tipc-discussion@lists.sourceforge.net, linux-ext4@vger.kernel.org, Guenter Roeck , linux-media@vger.kernel.org, bridge@lists.linux-foundation.org, intel-gfx@lists.freedesktop.org, linux-nfs@vger.kernel.org, linux-block@vger.kernel.org, cgroups@vger.kernel.org, Anna-Maria Gleixner , brcm80211-dev-list.pdl@broadcom.com, Stephen Boyd , netdev@vger.kernel.org, linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org, LKML , linux-bluetooth@vger.kernel.org, netfilter-devel@vger.kernel.org, Andrew Morton Subject: Re: [Drbd-dev] [PATCH] treewide: Convert del_timer*() to timer_shutdown*() List-Id: "*Coordination* of development, patches, contributions -- *Questions* \(even to developers\) go to drbd-user, please." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Tue, 2022-12-20 at 13:45 -0500, Steven Rostedt wrote: > [ > Linus, > > I ran the script against your latest master branch: > commit b6bb9676f2165d518b35ba3bea5f1fcfc0d969bf > > As the timer_shutdown*() code is now in your tree, I figured > we can start doing the conversions. At least add the trivial ones > now as Thomas suggested that this gets applied at the end of the > merge window, to avoid conflicts with linux-next during the > development cycle. I can wait to Friday to run it again, and > resubmit. > > What is the best way to handle this? > ] > > From: "Steven Rostedt (Google)" > > Due to several bugs caused by timers being re-armed after they are > shutdown and just before they are freed, a new state of timers was added > called "shutdown". After a timer is set to this state, then it can no > longer be re-armed. > > The following script was run to find all the trivial locations where > del_timer() or del_timer_sync() is called in the same function that the > object holding the timer is freed. It also ignores any locations where the > timer->function is modified between the del_timer*() and the free(), as > that is not considered a "trivial" case. > > This was created by using a coccinelle script and the following commands: > > $ cat timer.cocci > @@ > expression ptr, slab; > identifier timer, rfield; > @@ > ( > - del_timer(&ptr->timer); > + timer_shutdown(&ptr->timer); > > > - del_timer_sync(&ptr->timer); > + timer_shutdown_sync(&ptr->timer); > ) > ... when strict > when != ptr->timer > ( > kfree_rcu(ptr, rfield); > > > kmem_cache_free(slab, ptr); > > > kfree(ptr); > ) > > $ spatch timer.cocci . > /tmp/t.patch > $ patch -p1 < /tmp/t.patch > > Link: https://lore.kernel.org/lkml/20221123201306.823305113@linutronix.de/ > > Signed-off-by: Steven Rostedt (Google) For the networking bits: > drivers/net/ethernet/intel/i40e/i40e_main.c | 6 +++--- > drivers/net/ethernet/marvell/sky2.c | 2 +- > drivers/net/ethernet/sun/sunvnet.c | 2 +- > drivers/net/usb/sierra_net.c | 2 +- > net/802/garp.c | 2 +- > net/802/mrp.c | 4 ++-- > net/bridge/br_multicast.c | 8 ++++---- > net/bridge/br_multicast_eht.c | 4 ++-- > net/core/gen_estimator.c | 2 +- > net/ipv4/ipmr.c | 2 +- > net/ipv6/ip6mr.c | 2 +- > net/mac80211/mesh_pathtbl.c | 2 +- > net/netfilter/ipset/ip_set_list_set.c | 2 +- > net/netfilter/ipvs/ip_vs_lblc.c | 2 +- > net/netfilter/ipvs/ip_vs_lblcr.c | 2 +- > net/netfilter/xt_IDLETIMER.c | 4 ++-- > net/netfilter/xt_LED.c | 2 +- > net/sched/cls_flow.c | 2 +- > net/sunrpc/svc.c | 2 +- > net/tipc/discover.c | 2 +- > net/tipc/monitor.c | 2 +- Acked-by: Paolo Abeni