From: Thomas Gleixner <tglx@linutronix.de>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Anna-Maria Behnsen <anna-maria@linutronix.de>,
Frederic Weisbecker <frederic@kernel.org>,
John Stultz <jstultz@google.com>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>, Stephen Boyd <sboyd@kernel.org>,
Eric Biederman <ebiederm@xmission.com>,
Oleg Nesterov <oleg@redhat.com>
Subject: [patch V7 01/21] posix-cpu-timers: Correctly update timer status in posix_cpu_timer_del()
Date: Tue, 5 Nov 2024 09:14:29 +0100 (CET) [thread overview]
Message-ID: <20241105064212.974053438@linutronix.de> (raw)
In-Reply-To: <20241105063544.565410398@linutronix.de>
If posix_cpu_timer_del() exits early due to task not found or sighand
invalid, it fails to clear the state of the timer. That's harmless but
inconsistent.
These early exits are accounted as successful delete. Move the update of
the timer state into the success return path, so all "successful" deletions
are handled.
Reported-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
V7: New patch
---
kernel/time/posix-cpu-timers.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
--- a/kernel/time/posix-cpu-timers.c
+++ b/kernel/time/posix-cpu-timers.c
@@ -493,20 +493,20 @@ static int posix_cpu_timer_del(struct k_
*/
WARN_ON_ONCE(ctmr->head || timerqueue_node_queued(&ctmr->node));
} else {
- if (timer->it.cpu.firing) {
+ if (timer->it.cpu.firing)
ret = TIMER_RETRY;
- } else {
+ else
disarm_timer(timer, p);
- timer->it_status = POSIX_TIMER_DISARMED;
- }
unlock_task_sighand(p, &flags);
}
out:
rcu_read_unlock();
- if (!ret)
- put_pid(ctmr->pid);
+ if (!ret) {
+ put_pid(ctmr->pid);
+ timer->it_status = POSIX_TIMER_DISARMED;
+ }
return ret;
}
next prev parent reply other threads:[~2024-11-05 8:14 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-05 8:14 [patch V7 00/21] posix-timers: Cure the SIG_IGN mess Thomas Gleixner
2024-11-05 8:14 ` Thomas Gleixner [this message]
2024-11-05 12:02 ` [patch V7 01/21] posix-cpu-timers: Correctly update timer status in posix_cpu_timer_del() Frederic Weisbecker
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 02/21] posix-timers: Make signal delivery consistent Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 03/21] posix-timers: Make signal overrun accounting sensible Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 04/21] posix-cpu-timers: Cleanup the firing logic Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 05/21] posix-cpu-timers: Use dedicated flag for CPU timer nanosleep Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 06/21] posix-timers: Add a refcount to struct k_itimer Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 07/21] signal: Split up __sigqueue_alloc() Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 08/21] signal: Provide posixtimer_sigqueue_init() Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 09/21] posix-timers: Store PID type in the timer Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 10/21] signal: Refactor send_sigqueue() Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 11/21] signal: Replace resched_timer logic Thomas Gleixner
2024-11-05 12:08 ` Frederic Weisbecker
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 12/21] posix-timers: Embed sigqueue in struct k_itimer Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 13/21] signal: Cleanup unused posix-timer leftovers Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 14/21] posix-timers: Move sequence logic into struct k_itimer Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 15/21] signal: Provide ignored_posix_timers list Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 16/21] posix-timers: Handle ignored list on delete and exit Thomas Gleixner
2024-11-05 13:08 ` Frederic Weisbecker
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 17/21] signal: Handle ignored signals in do_sigaction(action != SIG_IGN) Thomas Gleixner
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 18/21] signal: Queue ignored posixtimers on ignore list Thomas Gleixner
2024-11-05 14:02 ` Frederic Weisbecker
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 19/21] posix-timers: Cleanup SIG_IGN workaround leftovers Thomas Gleixner
2024-11-05 14:26 ` Frederic Weisbecker
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 20/21] alarmtimers: Remove the throttle mechanism from alarm_forward_now() Thomas Gleixner
2024-11-05 14:29 ` Frederic Weisbecker
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
2024-11-05 8:14 ` [patch V7 21/21] alarmtimers: Remove return value from alarm functions Thomas Gleixner
2024-11-05 14:34 ` Frederic Weisbecker
2024-11-07 1:31 ` [tip: timers/core] " tip-bot2 for Thomas Gleixner
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=20241105064212.974053438@linutronix.de \
--to=tglx@linutronix.de \
--cc=anna-maria@linutronix.de \
--cc=ebiederm@xmission.com \
--cc=frederic@kernel.org \
--cc=jstultz@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=sboyd@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®