summaryrefslogtreecommitdiffstats
path: root/arch/blackfin/kernel
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-01-22 13:35:20 +0100
committerMike Frysinger <vapier@gentoo.org>2010-03-09 06:30:50 +0100
commitaebfef03249819886a7f9c981940cbd48d82ea47 (patch)
tree95f436dac29ef51e20d61e2a66ffafdfc6ef1cc7 /arch/blackfin/kernel
parentBlackfin: implement ndelay() (diff)
downloadlinux-aebfef03249819886a7f9c981940cbd48d82ea47.tar.xz
linux-aebfef03249819886a7f9c981940cbd48d82ea47.zip
Blackfin: implement ftrace mcount test
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Diffstat (limited to 'arch/blackfin/kernel')
-rw-r--r--arch/blackfin/kernel/ftrace-entry.S11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/blackfin/kernel/ftrace-entry.S b/arch/blackfin/kernel/ftrace-entry.S
index 76dd4fbcd17a..db3a51b0af21 100644
--- a/arch/blackfin/kernel/ftrace-entry.S
+++ b/arch/blackfin/kernel/ftrace-entry.S
@@ -1,7 +1,7 @@
/*
* mcount and friends -- ftrace stuff
*
- * Copyright (C) 2009 Analog Devices Inc.
+ * Copyright (C) 2009-2010 Analog Devices Inc.
* Licensed under the GPL-2 or later.
*/
@@ -21,6 +21,15 @@
* function will be waiting there. mmmm pie.
*/
ENTRY(__mcount)
+#ifdef CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST
+ /* optional micro optimization: return if stopped */
+ p1.l = _function_trace_stop;
+ p1.h = _function_trace_stop;
+ r3 = [p1];
+ cc = r3 == 0;
+ if ! cc jump _ftrace_stub (bp);
+#endif
+
/* save third function arg early so we can do testing below */
[--sp] = r2;