ftrace: fix mcount export bug

David S. Miller noticed the following bug: the -pg instrumentation
function callback is named differently on each platform. On x86 it
is mcount, on sparc it is _mcount. So the export does not make sense
in kernel/trace/ftrace.c - move it to x86.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Ingo Molnar 2008-05-14 08:10:31 +02:00 committed by Thomas Gleixner
parent d05f5f9906
commit 37135677e6
3 changed files with 17 additions and 6 deletions

View file

@ -1,7 +1,14 @@
#include <linux/ftrace.h>
#include <linux/module.h> #include <linux/module.h>
#include <asm/checksum.h> #include <asm/checksum.h>
#include <asm/desc.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/desc.h>
#ifdef CONFIG_FTRACE
/* mcount is defined in assembly */
EXPORT_SYMBOL(mcount);
#endif
/* Networking helper routines. */ /* Networking helper routines. */
EXPORT_SYMBOL(csum_partial_copy_generic); EXPORT_SYMBOL(csum_partial_copy_generic);

View file

@ -1,15 +1,22 @@
/* Exports for assembly files. /* Exports for assembly files.
All C exports should go in the respective C files. */ All C exports should go in the respective C files. */
#include <linux/ftrace.h>
#include <linux/module.h> #include <linux/module.h>
#include <net/checksum.h>
#include <linux/smp.h> #include <linux/smp.h>
#include <net/checksum.h>
#include <asm/processor.h> #include <asm/processor.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h> #include <asm/pgtable.h>
#include <asm/uaccess.h>
#include <asm/desc.h> #include <asm/desc.h>
#ifdef CONFIG_FTRACE
/* mcount is defined in assembly */
EXPORT_SYMBOL(mcount);
#endif
EXPORT_SYMBOL(kernel_thread); EXPORT_SYMBOL(kernel_thread);
EXPORT_SYMBOL(__get_user_1); EXPORT_SYMBOL(__get_user_1);

View file

@ -50,9 +50,6 @@ static struct ftrace_ops ftrace_list_end __read_mostly =
static struct ftrace_ops *ftrace_list __read_mostly = &ftrace_list_end; static struct ftrace_ops *ftrace_list __read_mostly = &ftrace_list_end;
ftrace_func_t ftrace_trace_function __read_mostly = ftrace_stub; ftrace_func_t ftrace_trace_function __read_mostly = ftrace_stub;
/* mcount is defined per arch in assembly */
EXPORT_SYMBOL(mcount);
void ftrace_list_func(unsigned long ip, unsigned long parent_ip) void ftrace_list_func(unsigned long ip, unsigned long parent_ip)
{ {
struct ftrace_ops *op = ftrace_list; struct ftrace_ops *op = ftrace_list;