Messages in this thread | | | From | Vineet Gupta <> | Subject | Re: [PATCH v1 08/10] kgdb: Remove "weak" from kgdb_arch_pc() declaration | Date | Thu, 16 Oct 2014 13:38:39 +0000 |
| |
Hi Bjorn,
On Thursday 16 October 2014 05:05 AM, Bjorn Helgaas wrote: > [+cc Harvey, Vineet, linux-sh; arc, sh, and x86 have kgdb_arch_pc() > definitions and could see issues from this]
Thanks for the heads up !
I compile tested arc tree (with kgdb) from linux-next of today, which has this patch already and things seem to be ok.
As a hack I reverted the patch and see that kgdb_arch_pc() becomes weak, although ARC version was still being pulled in final - it was recored as weak and that cause bloat-o-meter to go awry.
bloat-o-meter vmlinux-with-fix vmlinux-before-fix add/remove: 0/1 grow/shrink: 1/0 up/down: 1/-8 (-7) function old new delta vermagic 36 37 +1 kgdb_arch_pc 8 - -8
So functionally we are same as before - which is good. If you need it.
Tested-by: Vineet Gupta <vgupta@synopsys.com> #for ARC build
Thx, -Vineet > > On Wed, Oct 15, 2014 at 11:06 AM, Bjorn Helgaas <bhelgaas@google.com> wrote: >> kernel/debug/debug_core.c provides a default kgdb_arch_pc() definition >> explicitly marked "weak". Several architectures provide their own >> definitions intended to override the default, but the "weak" attribute on >> the declaration 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 declaration so we always prefer a >> non-weak definition over the weak one, independent of link order. >> >> Fixes: 688b744d8bc8 ("kgdb: fix signedness mixmatches, add statics, add declaration to header") >> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> >> CC: Harvey Harrison <harvey.harrison@gmail.com> >> --- >> include/linux/kgdb.h | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h >> index 6b06d378f3df..e465bb15912d 100644 >> --- a/include/linux/kgdb.h >> +++ b/include/linux/kgdb.h >> @@ -283,7 +283,7 @@ struct kgdb_io { >> >> extern struct kgdb_arch arch_kgdb_ops; >> >> -extern unsigned long __weak kgdb_arch_pc(int exception, struct pt_regs *regs); >> +extern unsigned long kgdb_arch_pc(int exception, struct pt_regs *regs); >> >> #ifdef CONFIG_SERIAL_KGDB_NMI >> extern int kgdb_register_nmi_console(void); >>
| |