[FIX] correctly restore original instruction in THUMB mode 83/51283/2
authorAnatolii Nikulin <nikulin.a@samsung.com>
Fri, 6 Nov 2015 07:08:08 +0000 (10:08 +0300)
committerDmitry Kovalenko <d.kovalenko@samsung.com>
Mon, 16 Nov 2015 04:38:48 +0000 (20:38 -0800)
Change-Id: I274bfa576ab2be67dffb0dc103b12da2cb248d59
Signed-off-by: Anatolii Nikulin <nikulin.a@samsung.com>
uprobe/swap_uprobes.c

index 8070f4d..6df1884 100644 (file)
@@ -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);