signal: Handle ignored signals in do_sigaction(action != SIG_IGN)
authorThomas Gleixner <tglx@linutronix.de>
Tue, 5 Nov 2024 08:14:52 +0000 (09:14 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 7 Nov 2024 01:14:45 +0000 (02:14 +0100)
commitcaf77435dd8a52cb39c602bdf67d35d6f782f553
treeaec94b027203169c5de7772c142977a0c10e03e1
parent0e20cd33acc7a173b23900550331ee82a23e9f00
signal: Handle ignored signals in do_sigaction(action != SIG_IGN)

When a real handler (including SIG_DFL) is installed for a signal, which
had previously SIG_IGN set, then the list of ignored posix timers has to be
checked for timers which are affected by this change.

Add a list walk function which checks for the matching signal number and if
found requeues the timers signal, so the timer is rearmed on signal
delivery.

Rearming the timer right away is not possible because that requires to drop
sighand lock.

No functional change as the counter part which queues the timers on the
ignored list is still missing.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lore.kernel.org/all/20241105064214.054091076@linutronix.de
kernel/signal.c