summaryrefslogtreecommitdiff
path: root/kernel/signal.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2024-11-05 09:14:48 +0100
committerThomas Gleixner <tglx@linutronix.de>2024-11-07 02:14:45 +0100
commit647da5f709f112319c0d51e06f330d8afecb1940 (patch)
treed4e72435fc95dfd2879d0197782f64c5299ca1b8 /kernel/signal.c
parentc2a4796a154bb952be1106911841aab2c8c17c4d (diff)
posix-timers: Move sequence logic into struct k_itimer
The posix timer signal handling uses siginfo::si_sys_private for handling the sequence counter check. That indirection is not longer required and the sequence count value at signal queueing time can be stored in struct k_itimer itself. This removes the requirement of treating siginfo::si_sys_private special as it's now always zero as the kernel does not touch it anymore. Suggested-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Frederic Weisbecker <frederic@kernel.org> Acked-by: "Eric W. Biederman" <ebiederm@xmission.com> Link: https://lore.kernel.org/all/20241105064213.852619866@linutronix.de
Diffstat (limited to 'kernel/signal.c')
-rw-r--r--kernel/signal.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index d267a2c5e977..d2734dc4d74f 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -1976,12 +1976,10 @@ int posixtimer_send_sigqueue(struct k_itimer *tmr)
return -1;
/*
- * Update @q::info::si_sys_private for posix timer signals with
- * sighand locked to prevent a race against dequeue_signal() which
- * decides based on si_sys_private whether to invoke
- * posixtimer_rearm() or not.
+ * Update @tmr::sigqueue_seq for posix timer signals with sighand
+ * locked to prevent a race against dequeue_signal().
*/
- q->info.si_sys_private = tmr->it_signal_seq;
+ tmr->it_sigqueue_seq = tmr->it_signal_seq;
ret = 1; /* the signal is ignored */
if (!prepare_signal(sig, t, false)) {