sh: oprofile: Backtrace support.

This patch improves the oprofile support on sh and adds backtrace
support.

Signed-off-by: Dave Peverley <dpeverley@mpc-data.co.uk>
Signed-off-by: Chris Smith <chris.smith@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
diff --git a/arch/sh/oprofile/common.c b/arch/sh/oprofile/common.c
index a4d8c0c..1d97d64 100644
--- a/arch/sh/oprofile/common.c
+++ b/arch/sh/oprofile/common.c
@@ -27,6 +27,8 @@
 
 static struct op_counter_config ctr[20];
 
+extern void sh_backtrace(struct pt_regs * const regs, unsigned int depth);
+
 static int op_sh_setup(void)
 {
 	/* Pre-compute the values to stuff in the hardware registers.  */
@@ -85,6 +87,13 @@
 	struct op_sh_model *lmodel = NULL;
 	int ret;
 
+	/*
+	 * Always assign the backtrace op. If the counter initialization
+	 * fails, we fall back to the timer which will still make use of
+	 * this.
+	 */
+	ops->backtrace = sh_backtrace;
+
 	switch (current_cpu_data.type) {
 	/* SH-4 types */
 	case CPU_SH7750: