uretprobes: Return probe entry, prepare_uretprobe()
authorAnton Arapov <anton@redhat.com>
Wed, 3 Apr 2013 16:00:35 +0000 (18:00 +0200)
committerOleg Nesterov <oleg@redhat.com>
Sat, 13 Apr 2013 13:31:57 +0000 (15:31 +0200)
commit0dfd0eb8e4d72ded8b21f4fee74ba5547408cbe9
treeaf23b10139df4ad0fc424ab7cffa859d216b9ac3
parentf15706b79d6f71e016cd06afa21ee31500029067
uretprobes: Return probe entry, prepare_uretprobe()

When a uprobe with return probe consumer is hit, prepare_uretprobe()
function is invoked. It creates return_instance, hijacks return address
and replaces it with the trampoline.

* Return instances are kept as stack per uprobed task.
* Return instance is chained, when the original return address is
  trampoline's page vaddr (e.g. recursive call of the probed function).

Signed-off-by: Anton Arapov <anton@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
include/linux/uprobes.h
kernel/events/uprobes.c