Re: [PATCH v8] kernel/fork: beware of __put_task_struct calling context

From: Oleg Nesterov
Date: Mon May 15 2023 - 12:44:30 EST


Certainly I have missed something...

but,

On 05/15, Wander Lairson Costa wrote:
>
> -extern void __put_task_struct(struct task_struct *t);
> +extern void ___put_task_struct(struct task_struct *t);
> +extern void __put_task_struct_rcu_cb(struct rcu_head *rhp);

I don't understand these renames, why can't you simply put this fix
into put_task_struct() ?

but this is minor,

> +static inline void __put_task_struct(struct task_struct *tsk)
> +{
...
> + if (IS_ENABLED(CONFIG_PREEMPT_RT) && !preemptible())
> + call_rcu(&tsk->rcu, __put_task_struct_rcu_cb);
> + else
> + ___put_task_struct(tsk);
> +}

did you see the emails from Peter? In particular, this one:

https://lore.kernel.org/lkml/20230505133902.GC38236@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/

Oleg.