Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751349AbaJPFKn (ORCPT ); Thu, 16 Oct 2014 01:10:43 -0400 Received: from mail-wi0-f176.google.com ([209.85.212.176]:55684 "EHLO mail-wi0-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751173AbaJPFKk (ORCPT ); Thu, 16 Oct 2014 01:10:40 -0400 Date: Thu, 16 Oct 2014 07:10:35 +0200 From: Ingo Molnar To: Bjorn Helgaas Cc: Jason Wessel , Ralf Baechle , Ingo Molnar , John Stultz , Eric Paris , "H. Peter Anvin" , Thomas Gleixner , Andrew Morton , linux-kernel@vger.kernel.org Subject: Re: [PATCH v1 10/10] uprobes: Remove "weak" from function declarations Message-ID: <20141016051035.GC14640@gmail.com> References: <20141015165957.4063.66741.stgit@bhelgaas-glaptop2.roam.corp.google.com> <20141015170650.4063.2816.stgit@bhelgaas-glaptop2.roam.corp.google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20141015170650.4063.2816.stgit@bhelgaas-glaptop2.roam.corp.google.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Bjorn Helgaas wrote: > For the following interfaces: > > set_swbp() > set_orig_insn() > is_swbp_insn() > is_trap_insn() > uprobe_get_swbp_addr() > arch_uprobe_ignore() > arch_uprobe_copy_ixol() > > kernel/events/uprobes.c provides default definitions explicitly marked > "weak". Some architectures provide their own definitions intended to > override the defaults, but the "weak" attribute on the declarations applied > to the arch definitions as well, so the linker chose one based on link > order (see 10629d711ed7 ("PCI: Remove __weak annotation from > pcibios_get_phb_of_node decl")). > > Remove the "weak" attribute from the declarations so we always prefer a > non-weak definition over the weak one, independent of link order. > > Signed-off-by: Bjorn Helgaas > CC: Victor Kamensky > CC: Oleg Nesterov > CC: David A. Long > CC: Srikar Dronamraju > CC: Ananth N Mavinakayanahalli > --- > include/linux/uprobes.h | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h > index 4f844c6b03ee..60beb5dc7977 100644 > --- a/include/linux/uprobes.h > +++ b/include/linux/uprobes.h > @@ -98,11 +98,11 @@ struct uprobes_state { > struct xol_area *xol_area; > }; > > -extern int __weak set_swbp(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long vaddr); > -extern int __weak set_orig_insn(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long vaddr); > -extern bool __weak is_swbp_insn(uprobe_opcode_t *insn); > -extern bool __weak is_trap_insn(uprobe_opcode_t *insn); > -extern unsigned long __weak uprobe_get_swbp_addr(struct pt_regs *regs); > +extern int set_swbp(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long vaddr); > +extern int set_orig_insn(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long vaddr); > +extern bool is_swbp_insn(uprobe_opcode_t *insn); > +extern bool is_trap_insn(uprobe_opcode_t *insn); > +extern unsigned long uprobe_get_swbp_addr(struct pt_regs *regs); > extern unsigned long uprobe_get_trap_addr(struct pt_regs *regs); > extern int uprobe_write_opcode(struct mm_struct *mm, unsigned long vaddr, uprobe_opcode_t); > extern int uprobe_register(struct inode *inode, loff_t offset, struct uprobe_consumer *uc); > @@ -128,8 +128,8 @@ extern bool arch_uprobe_xol_was_trapped(struct task_struct *tsk); > extern int arch_uprobe_exception_notify(struct notifier_block *self, unsigned long val, void *data); > extern void arch_uprobe_abort_xol(struct arch_uprobe *aup, struct pt_regs *regs); > extern unsigned long arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs *regs); > -extern bool __weak arch_uprobe_ignore(struct arch_uprobe *aup, struct pt_regs *regs); > -extern void __weak arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr, > +extern bool arch_uprobe_ignore(struct arch_uprobe *aup, struct pt_regs *regs); > +extern void arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr, > void *src, unsigned long len); > #else /* !CONFIG_UPROBES */ > struct uprobes_state { Acked-by: Ingo Molnar Thanks, Ingo -- 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/