Re: [PATCH v3 1/2] pid: deinline kill_cad_pid
From: Eric W. Biederman
Date: Mon Jul 20 2026 - 10:07:44 EST
"Cen Zhang (Microsoft)" <blbllhy@xxxxxxxxx> writes:
> Move kill_cad_pid() out of the header without changing behavior. This
> prepares for taking a reference to cad_pid under RCU in the following
> fix.
nit: If you are going to uninline kill_cad_pid should be placed in
signal.c not in pid.c
That is where everything else that sends signals lives.
Eric
> Suggested-by: Mateusz Guzik <mjguzik@xxxxxxxxx>
> Suggested-by: Bradley Morgan <include@xxxxxxxxx>
> Reviewed-by: Bradley Morgan <include@xxxxxxxxx>
> Link: https://lore.kernel.org/all/CAGudoHH0vz=1m97EDHQFLLwGJmDPmqWJ+444b7rMiD059drEwQ@xxxxxxxxxxxxxx/
> Signed-off-by: Cen Zhang (Microsoft) <blbllhy@xxxxxxxxx>
> ---
> v3: Add Reviewed-by from Bradley Morgan.
> v2: New preparatory patch to deinline kill_cad_pid().
>
> include/linux/sched/signal.h | 5 +----
> kernel/pid.c | 5 +++++
> 2 files changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/include/linux/sched/signal.h b/include/linux/sched/signal.h
> index 584ae88b435e..d45a5476b97d 100644
> --- a/include/linux/sched/signal.h
> +++ b/include/linux/sched/signal.h
> @@ -562,10 +562,7 @@ static inline sigset_t *sigmask_to_save(void)
> return res;
> }
>
> -static inline int kill_cad_pid(int sig, int priv)
> -{
> - return kill_pid(cad_pid, sig, priv);
> -}
> +int kill_cad_pid(int sig, int priv);
>
> /* These can be the second arg to send_sig_info/send_group_sig_info. */
> #define SEND_SIG_NOINFO ((struct kernel_siginfo *) 0)
> diff --git a/kernel/pid.c b/kernel/pid.c
> index f55189a3d07d..234ebee29375 100644
> --- a/kernel/pid.c
> +++ b/kernel/pid.c
> @@ -557,6 +557,11 @@ pid_t pid_vnr(struct pid *pid)
> }
> EXPORT_SYMBOL_GPL(pid_vnr);
>
> +int kill_cad_pid(int sig, int priv)
> +{
> + return kill_pid(cad_pid, sig, priv);
> +}
> +
> pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
> struct pid_namespace *ns)
> {