summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 1d787d3)
raw | patch | inline | side by side (parent: 1d787d3)
author | Oleg Nesterov <oleg@redhat.com> | |
Fri, 14 Sep 2012 16:03:59 +0000 (18:03 +0200) | ||
committer | Oleg Nesterov <oleg@redhat.com> | |
Sat, 29 Sep 2012 19:21:52 +0000 (21:21 +0200) |
If handle_swbp()->find_active_uprobe() fails we return with
utask->state = UTASK_BP_HIT.
Change handle_swbp() to reset utask->state at the start. Note
that we do this unconditionally, see the next patch(es).
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
utask->state = UTASK_BP_HIT.
Change handle_swbp() to reset utask->state at the start. Note
that we do this unconditionally, see the next patch(es).
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
kernel/events/uprobes.c | patch | blob | history |
index 912ef48d28ab485d2948b46d6862fbed91be84b5..2c1ff05af6f55fffaa0c0b95c38701c47017fd32 100644 (file)
--- a/kernel/events/uprobes.c
+++ b/kernel/events/uprobes.c
bp_vaddr = uprobe_get_swbp_addr(regs);
uprobe = find_active_uprobe(bp_vaddr, &is_swbp);
+ utask = current->utask;
+ if (utask)
+ utask->state = UTASK_RUNNING;
+
if (!uprobe) {
if (is_swbp > 0) {
/* No matching uprobe; signal SIGTRAP. */
return;
}
- utask = current->utask;
if (!utask) {
utask = add_utask();
/* Cannot allocate; re-execute the instruction. */