On Sun, Oct 13, 2024 at 10:06:15AM -0700, Anjali Kulkarni wrote:

> +     if (unlikely(task->flags & PF_EXIT_NOTIFY)) {
> +             task_lock(task);
> +             task->flags &= ~PF_EXIT_NOTIFY;
> +             task_unlock(task);
> +

> @@ -413,6 +440,15 @@ static void cn_proc_mcast_ctl(struct cn_msg *msg,
>       if (msg->len == sizeof(*pinput)) {
>               pinput = (struct proc_input *)msg->data;
>               mc_op = pinput->mcast_op;
> +             if (mc_op == PROC_CN_MCAST_NOTIFY) {
> +                     pr_debug("%s: Received PROC_CN_MCAST_NOTIFY, pid %d\n",
> +                                     __func__, current->pid);
> +                     task_lock(current);
> +                     current->flags |= PF_EXIT_NOTIFY;
> +                     task_unlock(current);
> +                     err = cn_add_elem(pinput->uexit_code, current->pid);
> +                     return;
> +             }

You seem to think that task_lock protects task->flags ? Why?

Reply via email to