powerpc/kretprobes: Override default function entry offset
authorNaveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Wed, 8 Mar 2017 08:26:07 +0000 (13:56 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 20 Apr 2017 13:18:55 +0000 (23:18 +1000)
With ABIv2, we offset 8 bytes into a function to get at the local entry
point.

mpe: NB this function is currently not called, the change to generic code to
call it is being merged via the tip tree.

Acked-by: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
Acked-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/kprobes.c

index 65828fbc410de1b84034fee5c4e58def53ceb5f2..97b5eed1f76df1ec9447766a8ada1f9df62a748b 100644 (file)
@@ -189,6 +189,15 @@ static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
        kcb->kprobe_saved_msr = regs->msr;
 }
 
+bool arch_function_offset_within_entry(unsigned long offset)
+{
+#ifdef PPC64_ELF_ABI_v2
+       return offset <= 8;
+#else
+       return !offset;
+#endif
+}
+
 void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,
                                      struct pt_regs *regs)
 {