The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] posix-cpu-timers: don't abuse lock_task_sighand() in handle_posix_cpu_timers()
@ 2026-07-04 11:09 Oleg Nesterov
  2026-07-04 14:42 ` Bradley Morgan
  2026-07-05 10:18 ` [tip: timers/core] posix-cpu-timers: Don't " tip-bot2 for Oleg Nesterov
  0 siblings, 2 replies; 8+ messages in thread
From: Oleg Nesterov @ 2026-07-04 11:09 UTC (permalink / raw)
  To: Thomas Gleixner, Frederic Weisbecker, Peter Zijlstra
  Cc: Wongi Lee, Jungwoo Lee, Anna-Maria Behnsen, linux-kernel

After the commit f90fff1e152d ("posix-cpu-timers: fix race between
handle_posix_cpu_timers() and posix_cpu_timer_del()"), tsk->sighand
is stable in handle_posix_cpu_timers(), so it can use the plain
spin_lock_irqsave(&tsk->sighand->siglock).

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
---
 kernel/time/posix-cpu-timers.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
index a7d3e8229c4b..d73d31c7994f 100644
--- a/kernel/time/posix-cpu-timers.c
+++ b/kernel/time/posix-cpu-timers.c
@@ -1357,8 +1357,11 @@ static void handle_posix_cpu_timers(struct task_struct *tsk)
 	unsigned long flags, start;
 	LIST_HEAD(firing);
 
-	if (!lock_task_sighand(tsk, &flags))
-		return;
+	/*
+	 * tsk is current and ->sighand is stable, see the
+	 * tsk->exit_state check in run_posix_cpu_timers()
+	 */
+	spin_lock_irqsave(&tsk->sighand->siglock, flags);
 
 	do {
 		/*
@@ -1418,7 +1421,7 @@ static void handle_posix_cpu_timers(struct task_struct *tsk)
 	 * that gets the timer lock before we do will give it up and
 	 * spin until we've taken care of that timer below.
 	 */
-	unlock_task_sighand(tsk, &flags);
+	spin_unlock_irqrestore(&tsk->sighand->siglock, flags);
 
 	/*
 	 * Now that all the timers on our list have the firing flag,
-- 
2.52.0



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2026-07-05 12:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-04 11:09 [PATCH] posix-cpu-timers: don't abuse lock_task_sighand() in handle_posix_cpu_timers() Oleg Nesterov
2026-07-04 14:42 ` Bradley Morgan
2026-07-04 16:42   ` Oleg Nesterov
2026-07-04 17:05   ` Oleg Nesterov
2026-07-04 17:06     ` Bradley Morgan
2026-07-04 17:09     ` Oleg Nesterov
2026-07-05 12:27     ` Bradley Morgan
2026-07-05 10:18 ` [tip: timers/core] posix-cpu-timers: Don't " tip-bot2 for Oleg Nesterov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox