[FIX] remove panic() from uprobe (ARM) 16/43516/1
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Thu, 9 Jul 2015 20:23:16 +0000 (23:23 +0300)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Thu, 9 Jul 2015 20:23:16 +0000 (23:23 +0300)
Change-Id: I2f7fca26e77bc790355c4bafb741e12e20159b45
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
uprobe/arch/arm/swap-asm/swap_uprobes.c

index 9efc6d6..df572e2 100644 (file)
@@ -624,8 +624,10 @@ int arch_prepare_uprobe(struct uprobe *up)
                return -EINVAL;
        }
 
-       if (!read_proc_vm_atomic(task, vaddr, &insn, sizeof(insn)))
-               panic("failed to read memory %lx!\n", vaddr);
+       if (!read_proc_vm_atomic(task, vaddr, &insn, sizeof(insn))) {
+               printk("failed to read memory %lx!\n", vaddr);
+               return -EINVAL;
+       }
 
        p->opcode = insn;
 
@@ -906,10 +908,12 @@ static int make_trampoline(struct uprobe *up, struct pt_regs *regs)
        utramp = up->atramp.utramp;
 
        if (!write_proc_vm_atomic(up->task, (unsigned long)utramp, tramp,
-                                 UPROBES_TRAMP_LEN * sizeof(*tramp)))
-               panic("failed to write memory %p!\n", utramp);
-       flush_insns(utramp, UPROBES_TRAMP_LEN * sizeof(*tramp));
+                                 UPROBES_TRAMP_LEN * sizeof(*tramp))) {
+               printk("failed to write memory %p!\n", utramp);
+               return -EINVAL;
+       }
 
+       flush_insns(utramp, UPROBES_TRAMP_LEN * sizeof(*tramp));
        p->ainsn.insn = utramp;
 
        return 0;