aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2010-03-15 20:05:02 -0400
committerIngo Molnar <mingo@elte.hu>2010-03-17 07:26:49 -0400
commitdcd5c1662db59a6b82942f47fb6ac9dd63f6d3dd (patch)
tree432f0d89d45fc62d666d46e591ffe109f111cb1e /arch/x86/kernel/cpu
parent9f591fd76afdc0e5192e9ed00a36f8efc0b4dfe6 (diff)
perf: Fix unexported generic perf_arch_fetch_caller_regs
perf_arch_fetch_caller_regs() is exported for the overriden x86 version, but not for the generic weak version. As a general rule, weak functions should not have their symbol exported in the same file they are defined. So let's export it on trace_event_perf.c as it is used by trace events only. This fixes: ERROR: ".perf_arch_fetch_caller_regs" [fs/xfs/xfs.ko] undefined! ERROR: ".perf_arch_fetch_caller_regs" [arch/powerpc/platforms/cell/spufs/spufs.ko] undefined! -v2: And also only build it if trace events are enabled. -v3: Fix changelog mistake Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Xiao Guangrong <xiaoguangrong@cn.fujitsu.com> Cc: Paul Mackerras <paulus@samba.org> LKML-Reference: <1268697902-9518-1-git-send-regression-fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r--arch/x86/kernel/cpu/perf_event.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
index 7645faea8e85..60398a0d947c 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -1702,6 +1702,7 @@ struct perf_callchain_entry *perf_callchain(struct pt_regs *regs)
1702 return entry; 1702 return entry;
1703} 1703}
1704 1704
1705#ifdef CONFIG_EVENT_TRACING
1705void perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip) 1706void perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int skip)
1706{ 1707{
1707 regs->ip = ip; 1708 regs->ip = ip;
@@ -1713,4 +1714,4 @@ void perf_arch_fetch_caller_regs(struct pt_regs *regs, unsigned long ip, int ski
1713 regs->cs = __KERNEL_CS; 1714 regs->cs = __KERNEL_CS;
1714 local_save_flags(regs->flags); 1715 local_save_flags(regs->flags);
1715} 1716}
1716EXPORT_SYMBOL_GPL(perf_arch_fetch_caller_regs); 1717#endif