* Oleg Nesterov <o...@redhat.com> [2012-09-14 19:15:54]: > handle_swbp() sets utask->active_uprobe before handler_chain(), > and UTASK_SSTEP before pre_ssout(). This complicates the code > for no reason, arch_ hooks or consumer->handler() should not > (and can't) use this info. > > Change handle_swbp() to initialize them after pre_ssout(), and > remove the no longer needed cleanup-utask code. > > Signed-off-by: Oleg Nesterov <o...@redhat.com> > --- > kernel/events/uprobes.c | 9 +++------ > 1 files changed, 3 insertions(+), 6 deletions(-) > > diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c > index 760acc1..9893cba 100644 > --- a/kernel/events/uprobes.c > +++ b/kernel/events/uprobes.c > @@ -1496,22 +1496,19 @@ static void handle_swbp(struct pt_regs *regs) > if (!utask) > goto cleanup_ret; > } > - utask->active_uprobe = uprobe; > + > handler_chain(uprobe, regs); > if (uprobe->flags & UPROBE_SKIP_SSTEP && can_skip_sstep(uprobe, regs)) > goto cleanup_ret; > > - utask->state = UTASK_SSTEP; > if (!pre_ssout(uprobe, regs, bp_vaddr)) { > arch_uprobe_enable_step(&uprobe->arch); > + utask->active_uprobe = uprobe; > + utask->state = UTASK_SSTEP; > return; > } > > cleanup_ret: > - if (utask) { > - utask->active_uprobe = NULL; > - utask->state = UTASK_RUNNING; > - } > if (!(uprobe->flags & UPROBE_SKIP_SSTEP)) > > /*
Acked-by: Srikar Dronamraju <sri...@linux.vnet.ibm.com> -- 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/