summaryrefslogtreecommitdiffstats
path: root/runtime/uprobes/uprobes.c
diff options
context:
space:
mode:
authorkenistoj <kenistoj>2007-10-16 23:40:49 +0000
committerkenistoj <kenistoj>2007-10-16 23:40:49 +0000
commitde14b6dab7064616fe2828c7ead9cca6a48463ce (patch)
tree6b0afe6dede588b4ddd32e05c973ed9a5f07a6d5 /runtime/uprobes/uprobes.c
parente3632368cea4bb761f90d001744f03b6b81f339e (diff)
downloadsystemtap-steved-de14b6dab7064616fe2828c7ead9cca6a48463ce.tar.gz
systemtap-steved-de14b6dab7064616fe2828c7ead9cca6a48463ce.tar.xz
systemtap-steved-de14b6dab7064616fe2828c7ead9cca6a48463ce.zip
* runtime/uprobes/uprobes.[ch], uprobes_i386.[ch],
uprobes_ppc64.h, uprobes_s390.h: Adjusted SLOT_IP and arch_validate_probed_insn to accept task pointer (needed by x86_64); added uprobe_probept_arch_info and uprobe_task_arch_info (ditto). * runtime/uprobes/uprobes_i386.c: Fixed a couple of glitches discovered when porting to x86_64
Diffstat (limited to 'runtime/uprobes/uprobes.c')
-rw-r--r--runtime/uprobes/uprobes.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/runtime/uprobes/uprobes.c b/runtime/uprobes/uprobes.c
index 01b40670..9f5fddd0 100644
--- a/runtime/uprobes/uprobes.c
+++ b/runtime/uprobes/uprobes.c
@@ -251,7 +251,7 @@ static void insert_bkpt(struct uprobe_probept *ppt, struct task_struct *tsk)
goto out;
}
- if ((result = arch_validate_probed_insn(ppt)) < 0) {
+ if ((result = arch_validate_probed_insn(ppt, tsk)) < 0) {
bkpt_insertion_failed(ppt, "instruction type cannot be probed");
goto out;
}
@@ -1754,7 +1754,8 @@ static int utask_quiesce_pending_sigtrap(struct uprobe_task *utask)
if (unlikely(regset == NULL))
return -EIO;
- if ((*regset->get)(utask->tsk, regset, SLOT_IP * regset->size,
+ if ((*regset->get)(utask->tsk, regset,
+ SLOT_IP(utask->tsk) * regset->size,
regset->size, &insn_ptr, NULL) != 0)
return -EIO;