get_signal: don't abuse ksig->info.si_signo and ksig->sig

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>
This commit is contained in:
Oleg Nesterov 2024-02-26 17:56:47 +01:00 committed by Andrew Morton
parent 3606422a28
commit 49fd5f5ac4

View file

@ -2842,7 +2842,7 @@ bool get_signal(struct ksignal *ksig)
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 @@ bool get_signal(struct ksignal *ksig)
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 @@ bool get_signal(struct ksignal *ksig)
/*
* 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 @@ bool get_signal(struct ksignal *ksig)
if (!(ksig->ka.sa.sa_flags & SA_EXPOSE_TAGBITS))
hide_si_addr_tag_bits(ksig);
return ksig->sig > 0;
return signr > 0;
}
/**