On 09/03, Oleg Nesterov wrote: > > Sebastian, I changed your patches a bit: > > 1/7: > > - Change the subject and update the changelog. In particular, > s/utrace/uprobes/. I am wondering where this typo came from ;)
Hmm. I just noticed this patch is buggy. arch_uprobe_disable_step(&uprobe->arch) is not safe after put_uprobe(). Srikar, I fixed this in my tree with the following change, --- kernel/events/uprobes.c~ 2012-09-02 16:52:54.000000000 +0200 +++ kernel/events/uprobes.c 2012-09-08 18:56:44.000000000 +0200 @@ -1536,10 +1536,10 @@ static void handle_singlestep(struct upr else WARN_ON_ONCE(1); + arch_uprobe_disable_step(&uprobe->arch); put_uprobe(uprobe); utask->active_uprobe = NULL; utask->state = UTASK_RUNNING; - arch_uprobe_disable_step(&uprobe->arch); xol_free_insn_slot(current); spin_lock_irq(¤t->sighand->siglock); I hope your ack is still valid. And this also allows us to rely on utask->state in disable_step(), see the new 8/7 I'll send in a minute. I was going to fix this later, but I just realized that "disable if trapped" is more buggy than I thought. Assuming that you are agree with 6 and 8. I'd prefer the new one as a separate change, but if you prefer to join them please let me know. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/