summaryrefslogtreecommitdiff
path: root/arch/sh/oprofile/common.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/oprofile/common.c')
-rw-r--r--arch/sh/oprofile/common.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/sh/oprofile/common.c b/arch/sh/oprofile/common.c
index a4d8c0c9a63c..1d97d64cb95f 100644
--- a/arch/sh/oprofile/common.c
+++ b/arch/sh/oprofile/common.c
@@ -27,6 +27,8 @@ static struct op_sh_model *model;
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 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
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: