From de14b6dab7064616fe2828c7ead9cca6a48463ce Mon Sep 17 00:00:00 2001 From: kenistoj Date: Tue, 16 Oct 2007 23:40:49 +0000 Subject: * 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 --- runtime/uprobes/uprobes.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'runtime/uprobes/uprobes.c') 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; -- cgit