uprobes/x86: Implement x86 specific arch_uprobe_*_step
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>
Mon, 20 Aug 2012 10:47:34 +0000 (12:47 +0200)
committerOleg Nesterov <oleg@redhat.com>
Sat, 15 Sep 2012 15:37:28 +0000 (17:37 +0200)
commitbdc1e47217315be14ba04881b0a4c8ecb3ff320c
tree12f3ad73096cffde4d560c44783d791c5333a797
parent9d778782266f95e5c6ec43ed8195ba331c821018
uprobes/x86: Implement x86 specific arch_uprobe_*_step

The arch specific implementation behaves like user_enable_single_step()
except that it does not disable single stepping if it was already
enabled by ptrace. This allows the debugger to single step over an
uprobe. The state of block stepping is not restored. It makes only sense
together with TF and if that was enabled then the debugger is notified.

Note: this is still not correct. For example, TIF_SINGLESTEP check
is not right, the application itself can set X86_EFLAGS_TF. And otoh
we leak TIF_SINGLESTEP (set by enable) if the probed insn is "popf".
See the next patches, we need the changes in arch/x86/kernel/step.c
first.

Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
arch/x86/include/asm/uprobes.h
arch/x86/kernel/uprobes.c