On Thu, Sep 04, 2025 at 08:26:30AM -0600, Tom Hromatka wrote:
This snippet addresses the double irq issue. I also added a check to make sure that task != current. (A user shouldn't do that but who knows what they'll actually do.)
if (task == current) { put_task_struct(task); return -EINVAL; } spin_lock_irq(¤t->sighand->siglock); spin_lock(&task->sighand->siglock);
What do you expect to happen if two tasks do that to each other at the same time? Or, for that matter, if task has been spawned by current with CLONE_VM | CLONE_SIGHAND?