On 04/26, Eric W. Biederman wrote: > > @@ -2164,7 +2166,9 @@ static void do_notify_parent_cldstop(struct task_struct > *tsk, > } > > sighand = parent->sighand; > - spin_lock_irqsave(&sighand->siglock, flags); > + lock = tsk->sighand != sighand; > + if (lock) > + spin_lock_nested(&sighand->siglock, SINGLE_DEPTH_NESTING);
But why is it safe? Suppose we have two tasks, they both trace each other, both call ptrace_stop() at the same time. Of course this is ugly, they both will block. But with this patch in this case we have the trivial ABBA deadlock, no? Oleg. _______________________________________________ linux-um mailing list linux-um@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-um