On 10/25, Enke Chen wrote:
>
> +static void do_notify_parent_predump(void)
> +{
> +     struct task_struct *parent;
> +     int sig;
> +
> +     read_lock(&tasklist_lock);
> +     parent = current->parent;
> +     sig = parent->signal->predump_signal;
> +     if (sig != 0)
> +             do_send_sig_info(sig, SEND_SIG_NOINFO, parent, PIDTYPE_TGID);
> +     read_unlock(&tasklist_lock);

Ah. It is strange I didn't think about this before... Please, do not take
tasklist_lock, use rcu_read_lock() instead. do_send_sig_info() uses the
rcu-friendly lock_task_sighand(), so rcu_dereference(parent) should work
fine.

Oleg.

Reply via email to