From 5d7d6840f30dd3760c2c6db6cdd838bf05e842b1 Mon Sep 17 00:00:00 2001 From: Vyacheslav Cherkashin Date: Thu, 9 Jul 2015 23:23:16 +0300 Subject: [PATCH] [FIX] remove panic() from uprobe (ARM) Change-Id: I2f7fca26e77bc790355c4bafb741e12e20159b45 Signed-off-by: Vyacheslav Cherkashin --- uprobe/arch/arm/swap-asm/swap_uprobes.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/uprobe/arch/arm/swap-asm/swap_uprobes.c b/uprobe/arch/arm/swap-asm/swap_uprobes.c index 9efc6d6..df572e2 100644 --- a/uprobe/arch/arm/swap-asm/swap_uprobes.c +++ b/uprobe/arch/arm/swap-asm/swap_uprobes.c @@ -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; -- 2.7.4