All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Stephen Boyd <sboyd@kernel.org>,
	Guenter Roeck <linux@roeck-us.net>,
	Anna-Maria Gleixner <anna-maria@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Chuck Lever <chuck.lever@oracle.com>,
	Jeff Layton <jlayton@kernel.org>,
	Trond Myklebust <trond.myklebust@hammerspace.com>,
	Anna Schumaker <anna@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	linux-nfs@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH v4a 01/38] SUNRPC/xprt: Use del_timer_sync() instead of del_singleshot_timer_sync()
Date: Sat, 05 Nov 2022 02:00:25 -0400	[thread overview]
Message-ID: <20221105060155.047357452@goodmis.org> (raw)
In-Reply-To: 20221105060024.598488967@goodmis.org

From: "Steven Rostedt (Google)" <rostedt@goodmis.org>

Back on June 22, 2005, it was decided to use del_singleshot_timer_sync()
because it wouldn't loop like del_timer_sync(), and since the timer that
was being removed was not about to be rearmed, it was considered an
efficiency to use del_singleshot_timer_sync() over del_timer_sync().

But on June 23, 2005, commit 55c888d6d09a0 ("timers fixes/improvements")
happened, which converted del_singleshot_timer_sync() into:

 #define del_singleshot_timer_sync(t) del_timer_sync(t)

Making the to equivalent.

Now work is being done to add a "shutdown" state to timers where a timer
must be in that state in order to be freed to prevent use-after-free bugs
caused by timers being re-armed just before being freed, the
del_singleshot_timer_sync() is now being converted into something that
will set the timer to the shutdown state. This means that once
del_singleshot_timer_sync() is called, the timer can no longer be
re-armed.

As the timer here will be re-armed, it can not use del_singleshot_timer_sync().
But as the reason it was used in the first place no longer exists, just
use del_timer_sync().

Link: https://lore.kernel.org/lkml/20221028145005.28bc324d@gandalf.local.home/

Cc: Chuck Lever <chuck.lever@oracle.com>
Cc: Jeff Layton <jlayton@kernel.org>
Cc: Trond Myklebust <trond.myklebust@hammerspace.com>
Cc: Anna Schumaker <anna@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: linux-nfs@vger.kernel.org
Cc: netdev@vger.kernel.org
Fixes: 0f9dc2b16884b ("RPC: Clean up socket autodisconnect")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
 net/sunrpc/xprt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index 656cec208371..ab453ede54f0 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -1164,7 +1164,7 @@ xprt_request_enqueue_receive(struct rpc_task *task)
 	spin_unlock(&xprt->queue_lock);
 
 	/* Turn off autodisconnect */
-	del_singleshot_timer_sync(&xprt->timer);
+	del_timer_sync(&xprt->timer);
 	return 0;
 }
 
-- 
2.35.1

  reply	other threads:[~2022-11-05  6:01 UTC|newest]

Thread overview: 186+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-05  6:00 [PATCH v4a 00/38] timers: Use timer_shutdown*() before freeing timers Steven Rostedt
2022-11-05  6:00 ` [Drbd-dev] " Steven Rostedt
2022-11-05  6:00 ` Steven Rostedt
2022-11-05  6:00 ` [Intel-gfx] " Steven Rostedt
2022-11-05  6:00 ` [Intel-wired-lan] " Steven Rostedt
2022-11-05  6:00 ` Steven Rostedt
2022-11-05  6:00 ` [Bridge] " Steven Rostedt
2022-11-05  6:00 ` Steven Rostedt [this message]
2022-11-05  6:00 ` [PATCH v4a 02/38] ARM: spear: Do not use timer namespace for timer_shutdown() function Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05 14:05   ` Guenter Roeck
2022-11-05 14:05     ` Guenter Roeck
2022-11-07  5:46     ` Viresh Kumar
2022-11-07  5:46       ` Viresh Kumar
2022-11-05 18:12   ` Arnd Bergmann
2022-11-05 18:12     ` Arnd Bergmann
2022-11-05  6:00 ` [PATCH v4a 03/38] clocksource/drivers/arm_arch_timer: " Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05  9:38   ` Marc Zyngier
2022-11-05  9:38     ` Marc Zyngier
2022-11-05 14:07   ` Guenter Roeck
2022-11-05 14:07     ` Guenter Roeck
2022-11-05 14:42     ` Steven Rostedt
2022-11-05 14:42       ` Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 04/38] clocksource/drivers/sp804: " Steven Rostedt
2022-11-05 14:06   ` Guenter Roeck
2022-11-05  6:00 ` [PATCH v4a 05/38] timers: Add timer_shutdown_sync() and timer_shutdown() to be called before freeing timers Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 06/38] timers: sh: Use timer_shutdown_sync() before freeing timer Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 07/38] timers: block: " Steven Rostedt
2022-11-05  6:00   ` [Drbd-dev] " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 08/38] timers: ACPI: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 09/38] timers: atm: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 10/38] timers: Bluetooth: " Steven Rostedt
2022-11-05  7:14   ` timers: Use timer_shutdown*() before freeing timers bluez.test.bot
2022-11-18  3:47   ` bluez.test.bot
2022-11-18  4:33   ` bluez.test.bot
2022-11-18  5:32   ` bluez.test.bot
2022-11-18  6:34   ` bluez.test.bot
2022-11-18  7:33   ` bluez.test.bot
2022-11-18  8:33   ` bluez.test.bot
2022-11-18  9:30   ` bluez.test.bot
2022-11-19  3:56   ` bluez.test.bot
2022-11-19  5:03   ` bluez.test.bot
2022-11-05  6:00 ` [Intel-gfx] [PATCH v4a 11/38] timers: drm: Use timer_shutdown_sync() before freeing timer Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 12/38] timers: HID: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 14/38] timers: mISDN: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 15/38] timers: leds: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 16/38] timers: media: " Steven Rostedt
2022-11-05  6:00 ` [Bridge] [PATCH v4a 17/38] timers: net: " Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 18/38] timers: usb: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 19/38] timers: nfc: pn533: " Steven Rostedt
2022-11-07 10:13   ` Krzysztof Kozlowski
2022-11-05  6:00 ` [PATCH v4a 20/38] timers: pcmcia: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 21/38] timers: scsi: Use timer_shutdown_sync() and timer_shutdown() " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 22/38] timers: tty: Use timer_shutdown_sync() " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 23/38] timers: ext4: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 24/38] timers: fs/nilfs2: " Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 25/38] timers: ALSA: " Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 26/38] timers: jbd2: Use timer_shutdown() " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 27/38] timers: sched/psi: Use timer_shutdown_sync() " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 28/38] timers: workqueue: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 29/38] random: use timer_shutdown_sync() for on stack timers Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 30/38] timers: dma-buf: Use " Steven Rostedt
2022-11-07 14:12   ` Christian König
2022-11-07 14:12     ` Christian König
2022-11-05  6:00 ` [Intel-gfx] [PATCH v4a 31/38] timers: drm: " Steven Rostedt
2022-11-05  6:00   ` Steven Rostedt
2022-11-05  9:54   ` [Intel-gfx] " Noralf Trønnes
2022-11-05  9:54     ` Noralf Trønnes
2022-11-05  9:54     ` Noralf Trønnes
2022-11-05  6:00 ` [PATCH v4a 32/38] timers: media: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 33/38] timers: s390/cmm: Use timer_shutdown_sync() before a module is released Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 34/38] timers: atm: " Steven Rostedt
2022-11-05  6:00 ` [PATCH v4a 35/38] timers: hangcheck: " Steven Rostedt
2022-11-05  6:01 ` [PATCH v4a 36/38] timers: ipmi: " Steven Rostedt
2022-11-05  6:01 ` [PATCH v4a 38/38] timers: PM: Use timer_shutdown_sync() Steven Rostedt
2022-11-05 14:18 ` [PATCH v4a 00/38] timers: Use timer_shutdown*() before freeing timers Guenter Roeck
2022-11-05 14:18   ` [Drbd-dev] " Guenter Roeck
2022-11-05 14:18   ` Guenter Roeck
2022-11-05 14:18   ` [Intel-gfx] " Guenter Roeck
2022-11-05 14:18   ` [Intel-wired-lan] " Guenter Roeck
2022-11-05 14:18   ` Guenter Roeck
2022-11-05 14:18   ` [Bridge] " Guenter Roeck
2022-11-05 14:47   ` Steven Rostedt
2022-11-05 14:47     ` [Drbd-dev] " Steven Rostedt
2022-11-05 14:47     ` Steven Rostedt
2022-11-05 14:47     ` [Intel-gfx] " Steven Rostedt
2022-11-05 14:47     ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 14:47     ` Steven Rostedt
2022-11-05 14:47     ` [Bridge] " Steven Rostedt
2022-11-05 15:59 ` Linus Torvalds
2022-11-05 15:59   ` [Drbd-dev] " Linus Torvalds
2022-11-05 15:59   ` Linus Torvalds
2022-11-05 15:59   ` [Intel-gfx] " Linus Torvalds
2022-11-05 15:59   ` [Intel-wired-lan] " Linus Torvalds
2022-11-05 15:59   ` Linus Torvalds
2022-11-05 15:59   ` [Bridge] " Linus Torvalds
2022-11-05 16:36   ` Steven Rostedt
2022-11-05 16:36     ` [Drbd-dev] " Steven Rostedt
2022-11-05 16:36     ` Steven Rostedt
2022-11-05 16:36     ` [Intel-gfx] " Steven Rostedt
2022-11-05 16:36     ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 16:36     ` Steven Rostedt
2022-11-05 16:36     ` [Bridge] " Steven Rostedt
2022-11-05 16:53     ` Steven Rostedt
2022-11-05 16:53       ` [Drbd-dev] " Steven Rostedt
2022-11-05 16:53       ` Steven Rostedt
2022-11-05 16:53       ` [Intel-gfx] " Steven Rostedt
2022-11-05 16:53       ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 16:53       ` Steven Rostedt
2022-11-05 16:53       ` [Bridge] " Steven Rostedt
2022-11-05 18:03     ` Steven Rostedt
2022-11-05 18:03       ` [Drbd-dev] " Steven Rostedt
2022-11-05 18:03       ` Steven Rostedt
2022-11-05 18:03       ` [Intel-gfx] " Steven Rostedt
2022-11-05 18:03       ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 18:03       ` Steven Rostedt
2022-11-05 18:03       ` [Bridge] " Steven Rostedt
2022-11-05 18:05       ` Steven Rostedt
2022-11-05 18:05         ` [Drbd-dev] " Steven Rostedt
2022-11-05 18:05         ` Steven Rostedt
2022-11-05 18:05         ` [Intel-gfx] " Steven Rostedt
2022-11-05 18:05         ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 18:05         ` Steven Rostedt
2022-11-05 18:05         ` [Bridge] " Steven Rostedt
2022-11-05 18:28       ` Linus Torvalds
2022-11-05 18:28         ` [Drbd-dev] " Linus Torvalds
2022-11-05 18:28         ` Linus Torvalds
2022-11-05 18:28         ` [Intel-gfx] " Linus Torvalds
2022-11-05 18:28         ` [Intel-wired-lan] " Linus Torvalds
2022-11-05 18:28         ` Linus Torvalds
2022-11-05 18:28         ` [Bridge] " Linus Torvalds
2022-11-05 18:43         ` Steven Rostedt
2022-11-05 23:08           ` Julia Lawall
2022-11-06  0:36             ` Steven Rostedt
2022-11-06  2:38               ` Julia Lawall
2022-11-06  3:05               ` Julia Lawall
2022-11-06  3:12                 ` Steven Rostedt
2022-11-06  3:15                   ` Julia Lawall
2022-11-05 21:03     ` Jason A. Donenfeld
2022-11-05 21:03       ` [Drbd-dev] " Jason A. Donenfeld
2022-11-05 21:03       ` Jason A. Donenfeld
2022-11-05 21:03       ` [Intel-gfx] " Jason A. Donenfeld
2022-11-05 21:03       ` [Intel-wired-lan] " Jason A. Donenfeld
2022-11-05 21:03       ` Jason A. Donenfeld
2022-11-05 21:03       ` [Bridge] " Jason A. Donenfeld
2022-11-05 21:13       ` Linus Torvalds
2022-11-05 21:13         ` [Drbd-dev] " Linus Torvalds
2022-11-05 21:13         ` Linus Torvalds
2022-11-05 21:13         ` [Intel-gfx] " Linus Torvalds
2022-11-05 21:13         ` [Intel-wired-lan] " Linus Torvalds
2022-11-05 21:13         ` Linus Torvalds
2022-11-05 21:13         ` [Bridge] " Linus Torvalds
2022-11-05 21:45         ` Steven Rostedt
2022-11-05 21:45           ` [Drbd-dev] " Steven Rostedt
2022-11-05 21:45           ` Steven Rostedt
2022-11-05 21:45           ` [Intel-gfx] " Steven Rostedt
2022-11-05 21:45           ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 21:45           ` Steven Rostedt
2022-11-05 21:45           ` [Bridge] " Steven Rostedt
2022-11-05 21:47         ` Steven Rostedt
2022-11-05 21:47           ` [Drbd-dev] " Steven Rostedt
2022-11-05 21:47           ` Steven Rostedt
2022-11-05 21:47           ` [Intel-gfx] " Steven Rostedt
2022-11-05 21:47           ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 21:47           ` Steven Rostedt
2022-11-05 21:47           ` [Bridge] " Steven Rostedt
2022-11-05 17:53   ` Steven Rostedt
2022-11-05 17:53     ` [Drbd-dev] " Steven Rostedt
2022-11-05 17:53     ` Steven Rostedt
2022-11-05 17:53     ` [Intel-gfx] " Steven Rostedt
2022-11-05 17:53     ` [Intel-wired-lan] " Steven Rostedt
2022-11-05 17:53     ` Steven Rostedt
2022-11-05 17:53     ` [Bridge] " Steven Rostedt
2022-11-05 19:31 ` Guenter Roeck
2022-11-05 19:31   ` [Drbd-dev] " Guenter Roeck
2022-11-05 19:31   ` Guenter Roeck
2022-11-05 19:31   ` [Intel-gfx] " Guenter Roeck
2022-11-05 19:31   ` [Intel-wired-lan] " Guenter Roeck
2022-11-05 19:31   ` Guenter Roeck
2022-11-05 19:31   ` [Bridge] " Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221105060155.047357452@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=anna-maria@linutronix.de \
    --cc=anna@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jlayton@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=trond.myklebust@hammerspace.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.