From 400e39f993f391f76677fc45f027310d3608f2ec Mon Sep 17 00:00:00 2001 From: Anatolii Nikulin Date: Fri, 6 Nov 2015 10:08:08 +0300 Subject: [PATCH] [FIX] correctly restore original instruction in THUMB mode Change-Id: I274bfa576ab2be67dffb0dc103b12da2cb248d59 Signed-off-by: Anatolii Nikulin --- uprobe/swap_uprobes.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/uprobe/swap_uprobes.c b/uprobe/swap_uprobes.c index 8070f4d..6df1884 100644 --- a/uprobe/swap_uprobes.c +++ b/uprobe/swap_uprobes.c @@ -105,12 +105,11 @@ EXPORT_SYMBOL_GPL(uinst_info_destroy); void uinst_info_disarm(struct uinst_info *uinst, struct task_struct *task) { - int ret = write_proc_vm_atomic(task, uinst->vaddr, - &uinst->opcode, sizeof(uinst->opcode)); - if (!ret) { - printk("uinst_info_disarm: failed to write memory " - "tgid=%u, vaddr=%08lx!\n", task->tgid, uinst->vaddr); - } + struct uprobe p; + + p.addr = (uprobe_opcode_t *)uinst->vaddr; + p.opcode = uinst->opcode; + arch_disarm_uprobe(&p, task); } EXPORT_SYMBOL_GPL(uinst_info_disarm); -- 2.7.4