Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751162AbaGBHAf (ORCPT ); Wed, 2 Jul 2014 03:00:35 -0400 Received: from mail7.hitachi.co.jp ([133.145.228.42]:59356 "EHLO mail7.hitachi.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750742AbaGBHAe (ORCPT ); Wed, 2 Jul 2014 03:00:34 -0400 Subject: [PATCH v5 1/2] kprobes/powerpc: Fix arch_deref_entry_point to support ABIv2 From: Masami Hiramatsu To: Benjamin Herrenschmidt , Paul Mackerras , Tony Luck Cc: Jeremy Fitzhardinge , rdunlap@infradead.org, Anoop Thomas Mathew , Arnd Bergmann , akataria@vmware.com, yrl.pp-manager.tt@hitachi.com, Linus Torvalds , sparse@chrisli.org, Rusty Russell , "H. Peter Anvin" , Linux Kernel Mailing List , anil.s.keshavamurthy@intel.com, "David S. Miller" , Chris Wright , linux-tip-commits@vger.kernel.org, Thomas Gleixner , dl9pf@gmx.de, Jiri Kosina , Andrew Morton , linuxppc-dev@lists.ozlabs.org, Ingo Molnar Date: Wed, 02 Jul 2014 07:00:22 +0000 Message-ID: <20140702070022.14689.7254.stgit@kbuild-fedora.novalocal> In-Reply-To: <1404276081.7254.1.camel@concordia> References: <1404276081.7254.1.camel@concordia> User-Agent: StGit/0.17-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since PowerPC64 ABIv2 doesn't have function descriptor any more, arch_deref_entry_point(), which returns function entry point from function descriptor, should be updated. Signed-off-by: Masami Hiramatsu Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Anoop Thomas Mathew Cc: Jiri Kosina Cc: linuxppc-dev@lists.ozlabs.org --- arch/powerpc/kernel/kprobes.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index 90fab64..72a1034 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c @@ -491,7 +491,12 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self, return ret; } -#ifdef CONFIG_PPC64 +#if defined(CONFIG_PPC64) && (!defined(_CALL_ELF) || _CALL_ELF == 1) +/* + * On PPC64 ABIv1 the function pointer actually points to the + * function's descriptor. The first entry in the descriptor is the + * address of the function text. + */ unsigned long arch_deref_entry_point(void *entry) { return ((func_descr_t *)entry)->entry; -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/