]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
get_signal: don't abuse ksig->info.si_signo and ksig->sig
authorOleg Nesterov <oleg@redhat.com>
Mon, 26 Feb 2024 16:56:47 +0000 (17:56 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 6 Mar 2024 21:07:39 +0000 (13:07 -0800)
Patch series "get_signal: minor cleanups and fix".

Lets remove this clear_siginfo() right now.  It is incomplete (and thus
looks confusing) and unnecessary.  Also, PF_USER_WORKER's already don't
get a fully initialized ksig anyway.

This patch (of 3):

Cleanup and preparation for the next changes.

get_signal() uses signr or ksig->info.si_signo or ksig->sig in a chaotic
way, this looks confusing. Change it to always use signr.

Link: https://lkml.kernel.org/r/20240226165612.GA20787@redhat.com
Link: https://lkml.kernel.org/r/20240226165647.GA20826@redhat.com
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Eric W. Biederman <ebiederm@xmission.com>
Cc: Peter Collingbourne <pcc@google.com>
Cc: Wen Yang <wenyang.linux@foxmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
kernel/signal.c

index c9c57d053ce4f64d9a832f358b4e1ee837959b8b..09a6dd07cf6b6dd1670fe160e73179c7c6a6e508 100644 (file)
@@ -2842,7 +2842,7 @@ relock:
                                spin_lock_irq(&sighand->siglock);
                        }
 
-                       if (likely(do_signal_stop(ksig->info.si_signo))) {
+                       if (likely(do_signal_stop(signr))) {
                                /* It released the siglock.  */
                                goto relock;
                        }
@@ -2866,7 +2866,7 @@ relock:
 
                if (sig_kernel_coredump(signr)) {
                        if (print_fatal_signals)
-                               print_fatal_signal(ksig->info.si_signo);
+                               print_fatal_signal(signr);
                        proc_coredump_connector(current);
                        /*
                         * If it was able to dump core, this kills all
@@ -2890,7 +2890,7 @@ relock:
                /*
                 * Death signals, no core dump.
                 */
-               do_group_exit(ksig->info.si_signo);
+               do_group_exit(signr);
                /* NOTREACHED */
        }
        spin_unlock_irq(&sighand->siglock);
@@ -2900,7 +2900,7 @@ out:
        if (!(ksig->ka.sa.sa_flags & SA_EXPOSE_TAGBITS))
                hide_si_addr_tag_bits(ksig);
 
-       return ksig->sig > 0;
+       return signr > 0;
 }
 
 /**